Python:如何在两列之间的数据帧中添加列?

Python:如何在两列之间的数据帧中添加列?,python,pandas,dataframe,Python,Pandas,Dataframe,我想在编号为columns dataframe的两列之间的dataframe中添加一列。在下面的数据框中,第一列对应于索引,而第一行对应于列的名称 df 0 0 1 2 3 4 5 1 6 7 4 5 2 1 2 0 3 1 3 3 4 3 9 8 4 3 6 2 我想把tmp=[2,3,5]放在4和5列之间,所以 df 0 0 1 2 3 4 5 6 1 6 7 4 5 2 2 1 2 0 3 1 3 3 3 4 3 9 8 4 3 6 5

我想在编号为columns dataframe的两列之间的dataframe中添加一列。在下面的数据框中,第一列对应于索引,而第一行对应于列的名称

df
   0 0 1 2 3 4 5
   1 6 7 4 5 2 1
   2 0 3 1 3 3 4
   3 9 8 4 3 6 2 
我想把
tmp=[2,3,5]
放在
4
5
列之间,所以

df
   0 0 1 2 3 4 5 6 
   1 6 7 4 5 2 2 1
   2 0 3 1 3 3 3 4
   3 9 8 4 3 6 5 2 

首先将列连接到数据帧

df2 = pd.concat([df, pd.DataFrame(tmp)], axis=1)
然后将列重命名为所需的最终结果

df2.columns = [0, 1, 2, 3, 4, 6, 5]
现在对重命名的列进行排序

df2.sort_index(axis=1, inplace=True)

>>> df2
   0  1  2  3  4  5  6
0  6  7  4  5  2  2  1
1  0  3  1  3  3  3  4
2  9  8  4  3  6  5  2
您可以使用:

注意:
insert
方法改变原始数据帧,不返回副本


如果使用
df=df.insert(4,'new\u col\u name',tmp)
df
将是
None

您只需要这样做,然后…@RK1有没有办法在特定列名之前插入一列而不是使用列索引?@cms72
insert
不直接支持该用例,但您可以从列名获取列索引并传递:
df.insert(df.columns.get\u loc('col_name'),'new_col_name',seru to_insert)
啊,我明白了。谢谢!
df.insert(4, 'new_col_name', tmp)