基于多索引求和的列值

问题描述 投票:0回答:2

为了简单起见,我有一个多索引数据框,如下所示;

                      Values    
01-01-2010 Belgium    1    
           Belgium    7
           UK         3 
           UK         4
           UK         2
           France     1
           France     3
02-01-2010 Belgium    4
           UK         7
           UK         10
           UK         2
           France     4

我需要尝试求和每天每个国家的价值。实际数据框架包含40个国家/地区大约10年的数据。

是否有使用resample()函数执行此操作的简单方法?我似乎无法使用多索引。我也许可以将这些国家转换回专栏?

任何帮助,不胜感激。

python pandas group-by sum multi-index
2个回答
1
投票

groupby通过指定级别来创建索引

df2 = df.groupby(level=[0,1])['Values'].sum()
print(df2)
01-01-2010   Belgium       8
             France        4
             UK            9
02-01-2010   Belgium       4
             France        4
             UK           19
Name: Values, dtype: int64

0
投票

实际上,如果允许索引首先成为列,则认为这将起作用;

sum_df = df.groupby(['Time','From Country']).agg({'Value': 'sum'})
© www.soinside.com 2019 - 2024. All rights reserved.