计算数据帧中特定列中的NaN

问题描述 投票:3回答:1

我有一个看起来像这样的数据框

 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。

我在做什么错,请?

谢谢

pandas nan
1个回答
2
投票

您需要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
© www.soinside.com 2019 - 2024. All rights reserved.