簡體   English   中英

根據其他列的值填充熊貓的缺失值

[英]Fill missing values of pandas based on values of other columns

我有以下數據框:

    A    B   C   D
0  NaN  2.0 NaN  0
1  3.0  4.0 NaN  1
2  NaN  NaN NaN  5
3  NaN  3.0 NaN  4

現在,我想用B或D中的值填充A的空值。即,如果B中的值為Null,則檢查D。所以結果數據幀看起來像這樣。

   A    B   C    D
0  2.0  2.0 NaN  0
1  3.0  4.0 NaN  1
2  5    NaN NaN  5
3  3.0  3.0 NaN  4

我可以使用以下代碼執行此操作:

df['A'] = df['A'].fillna(df['B'])
df['A'] = df['A'].fillna(df['D'])

但是我想一行完成,該怎么做?

您可以簡單地鏈接兩個.fillna()

df['A'] = df.A.fillna(df.B).fillna(df.D)

    A    B   C   D
0  2.0  2.0 NaN  0
1  3.0  4.0 NaN  1
2  5.0  NaN NaN  5
3  3.0  3.0 NaN  4

或將fillnacombine_first fillna使用:

df['A'] = df.A.fillna(df.B.combine_first(df.D))

如果因為許多列更好而不需要鏈,則使用按位置填充第一列來回填缺失值:

df['A'] = df['A'].fillna(df[['B','D']].bfill(axis=1).iloc[:, 0])
print (df)
     A    B   C  D
0  2.0  2.0 NaN  0
1  3.0  4.0 NaN  1
2  5.0  NaN NaN  5
3  3.0  3.0 NaN  4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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