如何根据数据框中的所有 id 计算 NaN 行,但 nan 将通过检查特定列来考虑?

How to count NaN rows against all ids in dataframe but nan will be consider by checking specific column?

上下文:

我有一个 Plantcube 文件,它有 7 列,该文件是由某些设备的响应生成的,并且设备响应温度或湿度的每一秒和 cube_id 以及默认情况下不会错过的时间戳在所有 40 万条记录中...

问题:

我想找到设备在没有温度或湿度的情况下发送响应的 ID 的计数,找到 ID 和它们的计数将帮助我跟踪发送响应时遇到问题的立方体。

如果你看第3行Cube ID 48和第5行Cube ID 90没有任何信息,所以我想统计id 48、90等出现了多少次。

预期输出例如:

多维数据集 ID -> 缺少计数

48 -> 1030

90 -> 790

400286 -> 36

文件 link : https://drive.google.com/file/d/1xZST8n27IcVsFor1qqu90jZ1E2cJ6pHb/view?usp=sharing

谢谢

mask1 = df['Temperature Layer A'].isna()
mask2 = df['Temperature Layer B'].isna()
mask3 = df['Humidity Layer A'].isna()
mask4 = df['Humidity Layer B'].isna()
df[mask1 & mask2 & mask3 & mask4]['Cube ID'].value_counts()

输出:

16    1564
20    1561
45    1561
75    1560
21    1560
      ...
70    1537
40    1537
37    1536
10    1533
46     613

您可以利用 isna and all:

df.loc[df.drop('CubeID',axis=1).isna().all(1)]['CubeID'].value_counts()