Python- 计算值在数据框列中出现的频率
我有一个数据集
|category|cat a
cat b
cat a
我希望能够返回类似的信息(显示唯一的值和频率)
category | freq |cat a 2
cat b 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]
以上是 Python- 计算值在数据框列中出现的频率 的全部内容, 来源链接: utcz.com/qa/423031.html