我有一个非常大的DataFrame,我想知道是否有短(一或两个班轮)方式来获取DataFrame中非NaN条目的数量。我不希望一次只做一列,因为我有接近1000列。
df1 = pd.DataFrame([(1,2,None),(None,4,None),(5,None,7),(5,None,None)],
columns=['a','b','d'], index = ['A', 'B','C','D'])
a b d
A 1 2 NaN
B NaN 4 NaN
C 5 NaN 7
D 5 NaN NaN
输出:
a: 3
b: 2
d: 1
答案 0 :(得分:78)
答案 1 :(得分:2)
如果您正在处理空字符串,您可能也希望将它们计为 NA:
df.replace('', np.nan).count()
或者如果您还想删除空白字符串:
df.replace(r'^\s*$', np.nan, regex=True).count()
答案 2 :(得分:1)
如果要对非NAN的总计数值求和,则可以这样做;
np.sum(df.count())