Pyton 计数具有特殊值的行

问题描述

我的数据框如下所示:

df1:

ident A B C D
1 2 1
2 3
3 1 2 1 5
4 4
5 4 1 3
6 3 2
7 3
8 1
9 1

现在我需要像 df 的分析。 它应该看起来像:

df2:

名称 just_name_sum
A 3
B 1
C 1
D 0

just_name_sum 列计算 df1 中除 ident 列之外的其他列中没有其他条目的列。 我怎么能算这样的东西?

谢谢

解决方法

您可以通过一个简单的 for 循环来实现:

summation = dict()
df_temp = df.drop('ident',axis=1)
for col in df_temp.columns:
    summation[col] = df_temp.loc[:,df_temp.columns!=col].isna().all(axis =1).sum()
pd.DataFrame([summation]).transpose()

输出:

index 0
A 3
B 1
C 1
D 0

列表理解版:(如果你是粉丝)

pd.DataFrame([{col: df_temp.loc[:,df_temp.columns!=col].isna().all(axis =1).sum()
              for col in df_temp.columns}]).transpose()