我有一个包含以下列的 .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/