有差额value_counts收益:
结果对象将按降序排列,以便第一个元素是最频繁出现的元素。
但count不是,它对输出排序index(由中的列创建groupby(’col’))。
df.groupby(’colA’).count()
是用于df按功能汇总所有列的,count.因此它计算不包括NaNs的值。
因此,如果count仅需要一列,则:
df.groupby(’colA’)[’colA’].count()
样品:
df = pd.DataFrame({’colB’:list(’abcdefg’), ’colC’:[1,3,5,7,np.nan,np.nan,4], ’colD’:[np.nan,3,6,9,2,4,np.nan], ’colA’:[’c’,’c’,’b’,’a’,np.nan,’b’,’b’]})print (df) colA colB colC colD0 c a 1.0 NaN1 c b 3.0 3.02 b c 5.0 6.03 a d 7.0 9.04 NaN e NaN 2.05 b f NaN 4.06 b g 4.0 NaNprint (df[’colA’].value_counts())b 3c 2a 1Name: colA, dtype: int64print (df.groupby(’colA’).count()) colB colC colDcolA a1 1 1b3 2 2c2 2 1print (df.groupby(’colA’)[’colA’].count())colAa 1b 3c 2Name: colA, dtype: int64解决方法
我在Pandas听说过,通常有多种方法可以做同一件事,但是我想知道-
如果我要按特定列中的值对数据进行分组并计算具有该值的项目数,那么什么df.groupby(’colA’).count()时候使用有意义,df[’colA’].value_counts()什么时候使用有意义?