我有一个看起来像这样的数据框
A B C D E F G H
100 100 NaN 100 1000 NaN NaN NaN
我正在尝试在A-D列中计算NaN的实例;然后是列E-H
我尝试过的是:
df_["NaN_A-D"] = df[["A", "B", "C", "D"]].isna().sum()
df_["NaN_E-H"] = df[["E", "F", "G", "H"]].isna().sum()
但是新列仅返回NaN而不是对NaN的实例求和(即,第一个分组为1,第二个分组为3。
我在做什么错,请?
谢谢
您需要axis=1
,因为每行需要总和,所以输出也分配给相同的DataFrame df
:
df["NaN_A-D"] = df[["A", "B", "C", "D"]].isna().sum(axis=1)
df["NaN_E-H"] = df[["E", "F", "G", "H"]].isna().sum(axis=1)
print (df)
A B C D E F G H NaN_A-D NaN_E-H
0 100 100 NaN 100 1000 NaN NaN NaN 1 3