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

2024-09-28 03:24:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含以下列的.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\u counts(),但没有定义计数条件(Classe=B-或A,或A+)


Tags: 文件csv数据valuecount次数pandaclass
1条回答
网友
1楼 · 发布于 2024-09-28 03:24:46

使用布尔掩蔽、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

通过使用名为tuplesagg()方法,可以跳过rename()方法的使用

因此,您也可以通过使用布尔掩蔽,groupby()isin()方法来实现这一点:

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

相关问题 更多 >

    热门问题