簡體   English   中英

如何根據其他列中的條件對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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM