Python- 计算值在数据框列中出现的频率

我有一个数据集

|category|

cat a

cat b

cat a

我希望能够返回类似的信息(显示唯一的值和频率)

category | freq |

cat a 2

cat b 1

回答:

使用groupbycount

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

回到顶部