python - 如何使用python计算csv文件分组项目中特定项目的出现次数

标签 python pandas csv count

我有一个包含以下列的 .csv 文件

Concelho    Classe 
Lisbon  A+
Porto   C
Faro    B-
Porto   A+
Porto   B-
Lisbon  B-
Lisbon  C
Lisbon  A+
Lisbon  A+
Lisbon  A+
Lisbon  B-
Lisbon  D
Lisbon  B-
Porto   E
Porto   E
Faro    C
Faro    B-
Faro    C

我想获得一个数据框,其中我对“concelho”和类别(B-、A、A+)的出现次数进行了分组: 比如……

Concelho    count Class (B-,A, A+)
Lisbon  7
Porto   2
Faro    2


我尝试使用 panda 的 groupby.count() 或 groupby.value_counts() 但我没有设法定义计数条件(Classe = B- 或 A,或 A+)

最佳答案

使用 bool 掩码、groupby()isin()rename() 方法:

resultdf=df[df['Classe'].isin(['B-','A','A+'])].groupby('Concelho',as_index=False).agg({'Classe':'count'}).rename(columns={'Classe':'count'})

现在如果你resultdf你会得到你想要的输出:

    Concelho    count
0   Faro          2
1   Lisbon        7
2   Porto         2

或者

你可以跳过 rename() 方法的使用,通过使用 agg() 方法和命名的 tuples

所以你也可以通过使用 bool 掩码、groupby()isin() 方法来做到这一点:

resultdf=df[df['Classe'].isin(['B-','A','A+'])]\
                         .groupby('Concelho',as_index=False)\
                         .agg(count=('Classe','count'))

关于python - 如何使用python计算csv文件分组项目中特定项目的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67024523/

相关文章:

bash - 使用 bash 脚本修改 CSV header

macos - 从 CSV 中删除\r (CR)

python ipdb 偶尔显示没有代码行

python - Pandas :按双月日期字段分组

python - 如何从 pandas 中的在线 zip 链接读取 Excel 文件

Python Pandas : apply on separated values

python - 如何使用 webdriver 作为上下文管理器

android - 最终用户是否需要安装 sl4a 才能使用 python-android 应用程序?

python - 在python中将多个Excel文件(xlsx)附加在一起

ruby-on-rails - ruby rails : Validate CSV file