Несколько символов валюты в одном столбце? - PullRequest
1 голос
/ 17 июня 2020

Как мне вставить символ валюты (например, $, € ..) в столбец «Цена», если в одном столбце указаны разные валюты?

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

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

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Создайте словарь 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   $0.6      USD
1     Soap  €0.19     EURO
2      Pen   ¥0.1      JPY
0 голосов
/ 17 июня 2020

Вы можете это сделать:

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
...