猿问

创建一个描述其他列中缺失值的列

我有一个数据框如下:


A,B,C,D

Nan,NaN,NaN,NaN

Nan,b,c,NaN

Nan,2,Nan,d

a,e,NaN,f

i,j,1,NaN

我想创建一个描述其他列中缺失模式的列 E,例如:列 E 将包含类似


A,B,C,D,E

Nan,NaN,NaN,NaN,ABCD

Nan,1,2,NaN,AD

Nan,3,Nan,d,AC

a,e,NaN,6,C

i,j,4,5,

我试过df.isnull().sum(axis=1) 了,但这不考虑例如第 4 行和第 5 行中的顺序,它返回相同的值 1。如上所述,如何创建我想要的列?


汪汪一只猫
浏览 59回答 2
2回答

开满天机

这是一种唱歌方式DataFrame.dot:df['E'] = df.isna().dot(df.columns)print(df)    A    B    C    D     E0  NaN  NaN  NaN  NaN  ABCD1  NaN    b    c  NaN    AD2  NaN    2  NaN    d    AC3    a    e  NaN    f     C4    i    j    1  NaN     D

慕村9548890

mapIIUC我们可以aggdf["null"] = (    df.isnull()    .apply(lambda x: x.map({True: x.name}))    .stack(0)    .groupby(level=0)    .agg("".join))print(df)     A    B    C    D  null0  NaN  NaN  NaN  NaN  ABCD1  NaN    b    c  NaN    AD2  NaN    2  NaN    d    AC3    a    e  NaN    f     C4    i    j    1  NaN     D
随时随地看视频慕课网APP

相关分类

Python
我要回答