Python 如何对熊猫进行操作';基于其他列中的条件的Dataframe列

Python 如何对熊猫进行操作';基于其他列中的条件的Dataframe列,python,pandas,dataframe,conditional-statements,Python,Pandas,Dataframe,Conditional Statements,例如: A B 1 3 0 2 4 0 3 6 1 4 8 0 我想知道是否有一种简单的方法可以将例如10添加到列a的值中,而B中有1 我想有一个df输出如下 A B 1 3 0 2 4 0 3 16 1 4 8 0 我发现了类似于下面代码行的内容,但这一行将6替换为1,我想使用6对其进行一些操作 p.pardón为我的英语 df.loc[df['B'] == 1, 'A'] = 1 您已接近,请将10与+=一起使用: #short versi

例如:

   A  B
1  3  0
2  4  0
3  6  1
4  8  0
我想知道是否有一种简单的方法可以将例如10添加到列a的值中,而B中有1

我想有一个df输出如下

   A  B
1  3  0
2  4  0
3  16 1
4  8  0
我发现了类似于下面代码行的内容,但这一行将6替换为1,我想使用6对其进行一些操作

p.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):
如果b=1:
返回+10
其他:
归还
然后应用于数据帧中的每一行

df['A']=df.apply(λx:cond_func(x['A'],x['B'],轴=1)

这也是
df.loc[df['B']==1,'A']=df['A']+10
…介于短版和长版之间:)