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

Python: how to add a column to a pandas dataframe between two columns?

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

1
2
3
4
5
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]放在45两列之间,所以

1
2
3
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


您也可以使用insert

1
df.insert(4,"new_col_name", tmp)

然后像@alexander解释的那样更改列名。

注意df.insert()没有inplace参数

所以会就地操作,不返回

df = df.insert(4,"new_col_name", tmp)不起作用


首先将列连接到数据帧。

1
df2 = pd.concat([df, pd.DataFrame(tmp)], axis=1)

然后将列重命名为所需的最终结果。

1
df2.columns = [0, 1, 2, 3, 4, 6, 5]

现在对重命名的列进行排序。

1
2
3
4
5
6
7
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