计算数据框中特定列中的 NaN
Counting NaN in specific columns in a dataframe
我有一个看起来有点像这样的数据框
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()
但是新列只是 returns 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
我有一个看起来有点像这样的数据框
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()
但是新列只是 returns 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