Python_-使用条件填充新行
我正在尝试遍历我的数据框并创建另一个名为“Conversions”的行。 我希望“转换”行仅在“货币”行为“欧元”时填充,如果不是欧元,则传递 一旦确定了“欧元”货币,我想将其乘以日元对象,即2 当前DF如下所示:Python_-使用条件填充新行,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试遍历我的数据框并创建另一个名为“Conversions”的行。 我希望“转换”行仅在“货币”行为“欧元”时填充,如果不是欧元,则传递 一旦确定了“欧元”货币,我想将其乘以日元对象,即2 当前DF如下所示: Name Currency Amount a EUR 12.00 b USD 10.00 c EUR 8.00 d JPY 100.0
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
一旦执行,我希望成品如下所示:
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)))
壳响应-
ValueError:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()
提前感谢您提供的任何帮助。使用
np。选择无需使用循环:
# 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(条件、选项、默认值)
我能帮你做的一切,除非你发布一个数据框架谢谢你的编辑。您的预期转换输出只是金额乘以2 just dodf['amount']*2
与货币栏无关嘿,克里斯,谢谢您的回复。我只想在货币为欧元时使用。其他的应该保持不变。好吧,那么你认为输出是不正确的;不过,我知道你在找什么