【发布时间】:2020-11-29 19:33:57
【问题描述】:
我有一个这样的熊猫数据框
df = pd.DataFrame({'id':[1,2,3,4,5], 'Opposition':['Sri Lanka', 'Sri Lanka', 'UAE','UAE','Sri Lanka'],
'Inning_no':[1,2,1,2,1], 'Wickets':[13,17,14,18,29]})
我有 groupby 来获得以下输出
t = inn.groupby(['Opposition', 'Inning_no'])['Wickets'].agg([('Wickets', 'sum'), ('Played', 'count')])
我有这样的输出
Wickets Played
Opposition Inning_no
v Sri Lanka 1 42 4
2 17 2
v UAE 1 14 4
2 18 6
问题是 reset_index() 不能与 group by 一起使用。多列索引设置在 Opposition 和 Innings_no 列上。我希望重置索引并在一个级别中显示所有内容,如下所示。
我遇到了这个错误
ValueError: cannot insert Opposition, already exists
【问题讨论】:
-
你的意思是反对和局应该是列而不是索引,并且作为索引你希望有越来越多的数字?
-
在代码末尾执行
.reset_index()时会出现什么错误?也请将数据发布为文本而不是图像,因为图像无法复制 -
您是否尝试通过调用将关键字 as_index=False 包含在组中?
-
df.groupby(['Opposition', 'Inning_no'])['Wickets'].agg([('Wickets', 'sum'), ('Played', 'count')]).reset_index()适合我 -
它对我来说也很好用(我只需要将
inn替换为df)。