pandas的大小和数量有什么区别?

这是groupby("x").countgroupby("x").size的区别?

大小是否排除零?

size包括NaN值, count不包括:

 In [46]: df = pd.DataFrame({'a':[0,0,1,2,2,2], 'b':[1,2,3,4,np.NaN,4], 'c':np.random.randn(6)}) df Out[46]: abc 0 0 1 1.067627 1 0 2 0.554691 2 1 3 0.458084 3 2 4 0.426635 4 2 NaN -2.238091 5 2 4 1.256943 In [48]: print(df.groupby(['a'])['b'].count()) print(df.groupby(['a'])['b'].size()) a 0 2 1 1 2 2 Name: b, dtype: int64 a 0 2 1 1 2 3 dtype: int64 

为了给@ Edchum的答案增加一点点,即使数据没有NA值,count()的结果也更加冗长,使用前面的例子:

 grouped = df.groupby('a') grouped.count() Out[197]: bc a 0 2 2 1 1 1 2 2 3 grouped.size() Out[198]: a 0 2 1 1 2 3 dtype: int64 

当我们正在处理正常的dataframe,那么只有差值将包含NAN值,在计数行时,平均值计数不包括NAN值。

但是,如果我们到那时使用这些函数,为了通过count()获得正确的结果,我们必须将任何数字字段与组相关联,以获得size()不需要的确切数量的组这种types的关联。