Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并数据帧从末尾移动新列_Python_Pandas_Multiple Columns - Fatal编程技术网

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

Python 合并数据帧从末尾移动新列,python,pandas,multiple-columns,Python,Pandas,Multiple Columns,我正在合并两个数据帧,效果很好,但新列放在末尾。我希望它是第三列或索引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) 如果最终数据帧每天都在变化,则需要进一步解释列

我正在合并两个数据帧,效果很好,但新列放在末尾。我希望它是第三列或索引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)

如果最终数据帧每天都在变化,则需要进一步解释列的名称和数量,因此解决方案需要是动态的。有没有一个干净的一行或两行的方法

一个快速解决方法是将前2列和最后添加的列设置为索引,然后重置索引,这将把它们放置为前3列:

import numpy as np

overlap.set_index(overlap.columns[np.r_[0:2,-1]].to_list()).reset_index()

np.r\u[0:2,-1]
基本上采用列0、1和-1的列名(附加的最后一列)。

非常有效,感谢您的解决方案和解释,这真的很有帮助