创建描述其他列中缺少值的列

2024-06-01 09:03:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据框架如下:

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。 如何创建一个如上所述的我想要的列


Tags: 数据框架df顺序模式nanadac
2条回答

我们可以{}和{}

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

这里有一种方法唱^{}

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

相关问题 更多 >