熊猫合并数据帧从末尾移动新列

我正在合并两个数据框,这工作正常,但新列放在末尾。我希望它是第3列或索引2。到目前为止,我有这个有效的方法,但我想知道是否有更好的方法。


overlap  = overlap.merge(df_comp, how='left')

cols = overlap.columns.tolist()

cols.insert(2, cols.pop(cols.index('cr')))

overlap = overlap.reindex(columns= cols)

进一步解释列的名称和列数,如果最终数据帧将每天更改,则解决方案需要是动态的。有没有一种干净的一两条线来做到这一点?


子衿沉夜
浏览 57回答 1
1回答

手掌心

一个快速的技巧是将前2列和最后添加的列设置为索引,然后重置索引,这将将它们作为前3列:import numpy as np overlap.set_index(overlap.columns[np.r_[0:2,-1]].to_list()).reset_index()np.r_[0:2, -1]基本上采用列 0、1 和 -1(附加的最后一列)的列名。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python