Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python_-使用条件填充新行_Python_Pandas_Dataframe - Fatal编程技术网

Python_-使用条件填充新行

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

我正在尝试遍历我的数据框并创建另一个名为“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
一旦执行,我希望成品如下所示:

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 do
df['amount']*2
与货币栏无关嘿,克里斯,谢谢您的回复。我只想在货币为欧元时使用。其他的应该保持不变。好吧,那么你认为输出是不正确的;不过,我知道你在找什么