如何根据其他列的条件对熊猫的“数据框”列进行操作

时间:2019-06-21 07:53:35

标签: python pandas dataframe conditional-statements

例如:

   A  B
1  3  0
2  4  0
3  6  1
4  8  0

我想知道是否有一种简单的方法可以在B中的值为1时将A的值添加到例如10。

我想要一个如下的df输出。

   A  B
1  3  0
2  4  0
3  16 1
4  8  0

我在下面的代码行中找到了类似的东西,但是这一行用1代替了6,我想用那6对它进行一些操作。

PS。为我的英语pardón

df.loc[df['B'] == 1, 'A'] = 1

3 个答案:

答案 0 :(得分:3)

您很近,将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

答案 1 :(得分:1)

使用 printf("%d\t", arrayOfArray[numRow][numColumn]));

np.where

输出

df['A'] = np.where(df['B'] == 1,df['A'] + 10, df['A'])

答案 2 :(得分:1)

一种可能的解决方案是用两个参数定义一个函数:

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)