同一列中有几个货币符号?

Several currency symbols in same column?

当我在同一列中有不同的货币时,如何在 'Price' 列下插入货币符号(如 $、€..)?

data = [['Shampoo', 0.60, 'USD'], 
        ['Soap', 0.19, 'EURO'], 
        ['Pen', 0.1, 'JPY'], 
        ]

df = pd.DataFrame(data, columns = ['Stuff', 'Price', 'Currency'])
df

创建一个 mapping 字典,将每种货币映射到其对应的符号,然后使用 Series.map 映射 currency 列中的值,然后将映射的列与 price 专栏:

mapping = {'USD': '$', 'EURO': '€', 'JPY': '¥'}
df['Price'] = df['Currency'].map(mapping) + df['Price'].astype(str)

# print(df)
     Stuff  Price Currency
0  Shampoo   [=11=].6      USD
1     Soap  €0.19     EURO
2      Pen   ¥0.1      JPY

你可以这样做:

curr = {
    'USD': '$',
    'EURO': '€',
    'JPY': '¥',
}
df = pd.DataFrame(data, columns = ['Stuff', 'Price', 'Currency'])
df['Price'] = df.apply(lambda x: curr[x['Currency']] + ' ' + str(x['Price']), axis=1)
print(df)

     Stuff   Price Currency
0  Shampoo   $ 0.6      USD
1     Soap  € 0.19     EURO
2      Pen   ¥ 0.1      JPY