我有两个数据集:
我现在想结合这两个数据框架,并每年为每个团队汇总数据
a = pd.DataFrame({
'year': [1995, 1995, 1995, 1995, 1996, 1996, 1996, 1996],
'team': ['Panthers', 'Panthers', 'Eagles', 'Eagles', 'Panthers', 'Panthers', 'Eagles', 'Eagles'],
'name': ['Joe', 'Betty', 'James', 'Sandra', 'Tyrone', 'Betty', 'James', 'Michael'],
'fans': [100, 200, 244, 277, 800, 900, 122, 300]
})
b = pd.DataFrame({
'year': [1995, 1995, 1995, 1995, 1996, 1996, 1996, 1996],
'team': ['Panthers', 'Panthers', 'Eagles', 'Eagles', 'Panthers', 'Panthers', 'Eagles', 'Eagles'],
'wins': [4, 2, 3, 5, 6, 7, 2, 4]
})
aa = a.groupby(['year', 'team']).sum()
bb = b.groupby(['year', 'team']).sum()
aa.join(bb)
这是可行的,但似乎有一些列的问题。最后的操作aa.join(bb).columns
只产生['fans', 'wins']
。我猜这是一个不完整的groupby
操作的遗留问题
为了更好地了解数据,可以使用nbviewerhere查看数据
如何正确地进行分组并将这两个帧连接起来?
1)
reset_index()
只能使用一次2)或者,不要使用
as_index=False
和pd.merge
为aa
和bb
创建级别这两种方法,将给您相同的输出
这个问题的解决方案是应用
reset_index()
通过操作“结束”组因此,以下将产生正确的结果:
相关问题 更多 >
编程相关推荐