Я пытаюсь пройти через свой фрейм данных и создать еще одну строку с именем «Конверсии». Я хотел бы, чтобы строка «Конверсии» заполнялась только тогда, когда в строке «Валюта» указано «EUR», и пропускалась, если это не EUR Как только валюта "EUR" была определена, я хотел бы умножить ее на объект JPY, который равен 2.
Текущий DF выглядит так:
Name Currency Amount
a EUR 12.00
b USD 10.00
c EUR 8.00
d JPY 100.00
e EUR 567.00
После выполнения я хотел бы, чтобы готовый продукт выглядел так:
Name Currency Amount Conversions
a EUR 12.00 24.00
b USD 10.00 20.00
c EUR 8.00 16.00
d JPY 100.00 200.00
e EUR 567.00 1134.00
* данные в формате csv.
Пожалуйста, посмотрите мою попытку ниже:
импорт csv импортировать панд как pd импортировать numpy как np
JPY = (2)
df = pd.read_csv('df.csv', delimiter = ";")
for i in df.iteritems():
if df.loc[(df['Currency'] == 'EUR')]:
df['Conversions']= (df.to_numeric(df['Amount']*(JPY)))
Ответ Shell - ValueError: истинное значение DataFrame неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ()
Заранее благодарим за любую помощь, которую вы можете предоставить этому новичку.
Спасибо за редактирование. Ваш ожидаемый результат для конверсий - это сумма, умноженная на 2, просто сделайте df['Amount']*2 Ничего общего со столбцом валюты
Привет, Крис, спасибо за ответ. Я хочу, чтобы он применялся только в том случае, если валюта - только евро. Остальные должны оставаться такими же.
ОК, значит, вы ожидаете, что вывод неверен; однако я знаю, что вы ищете






используйте np.select, не нужно использовать цикл:
# your condition
conditions = [
df['Currency'] == 'EUR'
]
# if condition is met
choices = [
df['Amount']*2
]
# create a new column and a default value if no condition is met
# you can always change the default value to np.nan if you do not want a value
df['Conversions'] = np.select(conditions, choices, default=df['Amount'])
Name Currency Amount Conversions
0 a EUR 12.0 24.0
1 b USD 10.0 10.0
2 c EUR 8.0 16.0
3 d JPY 100.0 100.0
4 e EUR 567.0 1134.0
используйте
np.select(conditions, choices, default)все, с чем я могу вам помочь, если вы не опубликуете фрейм данных