如何按年份而不是月份分组?

时间:2019-07-14 11:32:04

标签: python pandas

我有一个csv文件,其中有一个period列,以月为单位记录到达计数。但是,我想按年份来计算到达次数。

csv文件的外观如下: https://i.stack.imgur.com/jpERT.png

我已经按cor和moa对区域进行了分类,所以现在我需要按年份对它们进行分类。

这是我的代码:

data2 = df[df['region'] == 'ASIA'].groupby(['cor','moa']).sum()

1 个答案:

答案 0 :(得分:0)

我假设您在读取CSV文件后,将期间列更改为 期间类型,例如调用:

SELECT u.name, u.account,
    sum (case u.account
        when t.sent_to then t.quantity * -1
    else t.quantity end) as quantity_sent,
        case when quantity_sent > u.available then 'YES'
            else 'NO' end as analysis_result
from users as u inner join trans as t
on u.account in (t.sent_to, t.received_by)
group by u.name, u.account;

如果您想按年份将 avr_count 值分组(和求和), 则无需显式调用 groupby 。 相反,您可以编写例如:

df.period = df.period.apply(pd.Period)

但是如果您希望将年份作为附加分组级别,请输入:

df[df.region == 'ASIA'].set_index('period')['avr_count'].resample('Y').sum()

在上面的示例中,年份是第一分组级别,但是您 可以把它也例如作为最后级别。