Pandas 计算a列if b列条件

Pandas count column a if column b condition

我有一个包含两列的数据框,如下所示。

location   date
paris       6    
paris       4    
rome        3    
paris       5    
paris       6    
rome        6    
paris       4

现在我想计算 a 列中的不同区域,如果 b 列等于 6。 所以期望的结果是:

巴黎 2

罗马 1

说实话我是个菜鸟,基本思路是:如果“日期”列是 6,计算列位置中的值。

感谢任何帮助。

假设您的数据框是 df:

df[df['date'] == 6]['location'].value_counts()

会给你想要的结果:

paris    2
rome     1
Name: location, dtype: int64

它会是这样的:

df[df['date']==6].groupby('location').count()

df[df['date']==6] 部分,过滤您的 DataFrame 以仅包含日期值等于 6 的行。groupby('location') 按位置值对过滤的 DataFrame 进行分组,count() 计算中的行数组。