在 pandas groupby() 之后将 reset_index() 重置为原始列索引?

bkd*_*bkd 5 python csv indices pandas pandas-groupby

我生成了一个分组数据帧df = df.groupby(['X','Y']).max(),然后我想写入(到 csv,没有索引)。所以我需要将 'X' 和 'Y' 转换回常规列;我尝试使用reset_index(),但列的顺序是错误的。

如何将“X”和“Y”列恢复到其确切的原始列位置?

解决方法是:

df.reset_index(level=0, inplace=True)
Run Code Online (Sandbox Code Playgroud)

然后找到一种方法来更改列的顺序?


(我也找到了这种方法,用于 multiindex

bkd*_*bkd 5

此解决方案在分组后保持列原样并且不创建索引,因此我们不需要reset_index()最后对列进行重新排序:

df.groupby(['X','Y'],as_index=False).max()
Run Code Online (Sandbox Code Playgroud)

(在测试了很多不同的方法之后,最简单的一种是最好的解决方案(一如既往),也是最让我难以理解的一种。感谢@maxymoo 指出。)