【问题标题】:Summing column values based on multiindex基于多索引对列值求和
【发布时间】:2020-09-07 00:45:57
【问题描述】:

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

                      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

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

有没有使用 resample() 函数的简单方法来做到这一点? 我似乎无法使用多索引。我也许可以将国家/地区转换回一列?

非常感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 我现在实际上遇到了这个错误..ValueError: level > 0 only valid with MultiIndex。也许我的列没有正确编入索引?
      • @spcol print(df.index) 在此处粘贴输出
      • print(df.index) RangeIndex(start=0, stop=66766, step=1)
      • print(df.columns) 只产生列名。没有索引标题的迹象。
      • 已接受您的回答,因为我认为问题是我的索引开始。如果索引正确,这将起作用。再次感谢!
      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多