我正在尝试遍历数据框并创建另一个名为“转化”的行。 我希望仅在“货币”行为“ 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()
预先感谢您可以提供此新手帮助。
答案 0 :(得分: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