分组后如何针对大熊猫条件?

时间:2020-08-31 04:52:33

标签: python pandas group-by

我正在学习如何使用熊猫,但找不到解决我问题的方法。我只想通过分组“ 出现”来选择“ 原因” ==“ 地震”的行。我的代码如下:

total_Earthquakes_PerYear = df.\
        groupby(df['occurred_on'].dt.year)\
        ['cause'].value_counts()
total_Earthquake_PerYear

输出:

occurred_on  cause            
1969         earthquake           322
             nuclear explosion      1
1970         earthquake           344
             nuclear explosion      1
1971         earthquake           386
1972         earthquake           388
1973         earthquake           394
             nuclear explosion      6
             explosion              1

我该如何获取行中“ 原因” ==“ 地震”的行?

我尝试过这个:

total_Earthquakes_PerYear = df[df['cause' == 'earthquake']].groupby(df['occurred_on'].dt.year)['cause'].count()

但仍然没有。谢谢!

1 个答案:

答案 0 :(得分:1)

我的评论的全文为

total_Earthquakes_PerYear = (
     df[df['cause'] == 'earthquake']
    .groupby(df['occurred_on'].dt.year)
    ['cause'].value_counts()
)

或者您可以每年找出所有原因并仅过滤地震

total_PerYear = df.\
    groupby(df['occurred_on'].dt.year)\
    ['cause'].value_counts()

total_Eathquakes_PerYear =  \
    total_PerYear[total_PerYear.cause == 'earthquake']