繁体   English   中英

如何在 Python 中对相同的值进行分组并计算它们的频率?

[英]How to group identical values and count their frequency in Python?

我有一个包含 2 列的 dataframe

source_number   category
   222             cat2
   123             cat4
   111             cat1
   321             cat3
   543             cat1
   542             cat4
   333             cat1
   343             cat2

我根据 Amiga500 的答案编辑function我运行以下代码:

s = df["category"].value_counts()
print(s)

返回结果:

cat1 1
cat1 2    
cat2 1
cat2 1
cat3 1
cat4 2

预期结果:

cat1 3    
cat2 2
cat3 1
cat4 2

此语句中的错误在哪里以及如何解决?

看起来您的列中有一些whitespaces 尝试使用str.strip()删除前导和尾随字符(包括空格):

df['category'].value_counts()
Out[364]: 
cat4     2
cat1     2
cat2     1
cat3     1
cat2     1
cat1     1

# With using str.strip()
df['category'].str.strip().value_counts()
Out[365]: 
cat1    3
cat2    2
cat4    2
cat3    1

这个?

df['cat'].value_counts()

编辑:

基于上面现在介绍的 dataframe,代码应为:

df['category'].value_counts()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM