使用
groupby和
count:
In [37]:df = pd.Dataframe({'a':list('abssbab')})df.groupby('a').count()Out[37]: aa a 2b 3s 2[3 rows x 1 columns]请参阅在线文档:http : //pandas.pydata.org/pandas-docs/stable/groupby.html
另外,
value_counts()正如
@DSM所说,这里有很多方法可以给猫皮
In [38]:df['a'].value_counts()Out[38]:b 3a 2s 2dtype: int64
如果要向原始数据帧添加频率,请使用transform返回对齐的索引:
In [41]:df['freq'] = df.groupby('a')['a'].transform('count')dfOut[41]: a freq0 a 21 b 32 s 23 s 24 b 35 a 26 b 3[7 rows x 2 columns]


