我有一个数据集
|category| cat a cat b cat a
我希望能够返回类似的信息(显示唯一的值和频率)
category | freq | cat a 2 cat b 1
使用groupby和count:
groupby
count
In [37]: df = pd.DataFrame({'a':list('abssbab')}) df.groupby('a').count() Out[37]: a a a 2 b 3 s 2 [3 rows x 1 columns]
请参阅在线文档:http : //pandas.pydata.org/pandas-docs/stable/groupby.html
另外,value_counts()正如@DSM所说,这里有很多方法可以给猫皮
value_counts()
@DSM
In [38]: df['a'].value_counts() Out[38]: b 3 a 2 s 2 dtype: int64
如果要向原始数据帧添加频率,请使用transform返回对齐的索引:
In [41]: df['freq'] = df.groupby('a')['a'].transform('count') df Out[41]: a freq 0 a 2 1 b 3 2 s 2 3 s 2 4 b 3 5 a 2 6 b 3 [7 rows x 2 columns]