Python groupby之后,如何展平列标题?
我试图在单个Python groupby之后,如何展平列标题?,python,pandas,dataframe,Python,Pandas,Dataframe,我试图在单个Id列上左连接多个数据帧,但当我尝试合并时,我收到警告: KeyError:'Id' 我想这可能是因为我的数据帧有一个由groupby语句产生的偏移列,但我很可能是错的。无论哪种方式,我都不知道如何“取消堆叠”我的dataframe列标题。所有的答案似乎都不起作用 我的groupby代码: step1 = pd.DataFrame(step3.groupby(['Id', 'interestingtabsplittest2__grp'])['applications'].sum())
Id
列上左连接多个数据帧,但当我尝试合并时,我收到警告:
KeyError:'Id'
我想这可能是因为我的数据帧有一个由groupby
语句产生的偏移列,但我很可能是错的。无论哪种方式,我都不知道如何“取消堆叠”我的dataframe列标题。所有的答案似乎都不起作用
我的groupby
代码:
step1 = pd.DataFrame(step3.groupby(['Id', 'interestingtabsplittest2__grp'])['applications'].sum())
step1.sort('applications', ascending=False).head(3)
返回:
如何将这些偏移标题放入顶层?您正在寻找的
注意:在执行groupby时,可以使用
as_index=False
来避免此步骤
step1 = step3.groupby(['Id', 'interestingtabsplittest2__grp'], as_index=False)['applications'].sum()
如果您使用
.agg()
进行多个聚合,或者如果您按多个列进行分组,则接受的答案不起作用
您可以删除最顶层,然后重置索引
df.droplevel(axis=1, level=0).reset_index()
在这里,我只降低了一个级别,但您也可以传递一个数组:
df.droplevel(axis=1, level=[0,1]).reset_index()
如果您在组末尾实现了agg函数。列组无法按as_索引展平。我从中找到了答案。希望这对像我这样的人有帮助。
df.droplevel(axis=1, level=[0,1]).reset_index()