![](/img/trans.png)
[英]Creating New Column based on condition on Other Column in Pandas DataFrame
[英]How to make operations on pandas' Dataframe column based on condition in other column
例如:
A B
1 3 0
2 4 0
3 6 1
4 8 0
我想知道是否有一种简单的方法可以将例如10添加到B列的值中,其中B为1。
我想要像下面这样的df输出。
A B
1 3 0
2 4 0
3 16 1
4 8 0
我找到了类似下面的代码行,但是这个代替6代表1,我想使用它来对它进行一些操作。
PS。 pardón我的英文
df.loc[df['B'] == 1, 'A'] = 1
你很近,使用10
+=
:
#short version
df.loc[df['B'] == 1, 'A'] += 10
#long version
#df.loc[df['B'] == 1, 'A'] = 10 + df.loc[df['B'] == 1, 'A']
print (df)
A B
1 3 0
2 4 0
3 16 1
4 8 0
使用np.where
df['A'] = np.where(df['B'] == 1,df['A'] + 10, df['A'])
产量
A B
1 3 0
2 4 0
3 16 1
4 8 0
一种可能的解决方案是使用两个参数定义一个函数:
def cond_func(a,b):
if b = 1:
return a + 10
else:
return a
然后应用于数据框中的每一行
df['A'] = df.apply(lambda x: cond_func(x['A'], x['B'], axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.