基于多索引对列值求和
Posted
技术标签:
【中文标题】基于多索引对列值求和【英文标题】: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() 函数的简单方法来做到这一点? 我似乎无法使用多索引。我也许可以将国家/地区转换回一列?
非常感谢任何帮助。
【问题讨论】:
【参考方案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)
只产生列名。没有索引标题的迹象。
已接受您的回答,因为我认为问题是我的索引开始。如果索引正确,这将起作用。再次感谢!以上是关于基于多索引对列值求和的主要内容,如果未能解决你的问题,请参考以下文章