Python_Pandas - 用条件填充新行

Python_Pandas - Populating new row with condition

我正在尝试遍历我的 Dataframe 并创建另一个名为 'Conversions' 的行。 我希望 "Conversions" 行仅在 "Currency" 行为 "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 将 pandas 导入为 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()

在此先感谢您为这个新人提供的任何帮助。

使用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