gpt4 book ai didi

Python Pandas - 使用条件填充新行

转载 作者:行者123 更新时间:2023-12-01 01:28:21 27 4
gpt4 key购买 nike

我正在尝试浏览我的数据框并创建另一行名为“Conversions”的行。我希望“转化”行仅在“货币”行为“欧元”时填充,如果不是欧元则忽略一旦确定了“欧元”货币,我想将其乘以日元对象,即 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)))

壳牌 react -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

关于Python Pandas - 使用条件填充新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136933/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com