基于多索引求和列值

时间:2020-05-20 15:17:12

标签: python pandas group-by sum multi-index

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

                      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()函数执行此操作的简单方法? 我似乎无法使用多索引。我也许可以将这些国家改回专栏?

任何帮助深表感谢。

2 个答案:

答案 0 :(得分:2)

通过指定级别

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

答案 1 :(得分:1)

实际上,认为如果我允许索引首先是列,这会起作用;

sum_df = df.groupby(['Time','From Country']).agg({'Value': 'sum'})