我有一個數據框如下:A,B,C,DNan,NaN,NaN,NaNNan,b,c,NaNNan,2,Nan,da,e,NaN,fi,j,1,NaN我想創建一個描述其他列中缺失模式的列 E,例如:列 E 將包含類似A,B,C,D,ENan,NaN,NaN,NaN,ABCDNan,1,2,NaN,ADNan,3,Nan,d,ACa,e,NaN,6,Ci,j,4,5,我試過df.isnull().sum(axis=1) 了,但這不考慮例如第 4 行和第 5 行中的順序,它返回相同的值 1。如上所述,如何創建我想要的列?
2 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
這是一種唱歌方式DataFrame.dot:
df['E'] = df.isna().dot(df.columns)
print(df)
A B C D E
0 NaN NaN NaN NaN ABCD
1 NaN b c NaN AD
2 NaN 2 NaN d AC
3 a e NaN f C
4 i j 1 NaN D

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
mapIIUC我們可以agg
df["null"] = (
df.isnull()
.apply(lambda x: x.map({True: x.name}))
.stack(0)
.groupby(level=0)
.agg("".join)
)
print(df)
A B C D null
0 NaN NaN NaN NaN ABCD
1 NaN b c NaN AD
2 NaN 2 NaN d AC
3 a e NaN f C
4 i j 1 NaN D
添加回答
舉報
0/150
提交
取消