Python- 计算值在数据框列中出现的频率
发布于 2021-02-02 23:19:43
我有一个数据集
|category|
cat a
cat b
cat a
我希望能够返回类似的信息(显示唯一的值和频率)
category | freq |
cat a 2
cat b 1
关注者
0
被浏览
103
1 个回答
-
使用
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
所说,这里有很多方法可以给猫皮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]