如何在 Pandas 数据框中的特定位置插入一列? (更改熊猫数据框中的列顺序)

Posted

技术标签:

【中文标题】如何在 Pandas 数据框中的特定位置插入一列? (更改熊猫数据框中的列顺序)【英文标题】:How to insert a column in a specific place in Pandas data frame? (Change column order in pandas data frame) 【发布时间】:2020-10-07 11:17:39 【问题描述】:

我有一个 pandas 数据框,我想将“F”列移到“B”列之后。有没有办法做到这一点?

   A  B  C    D  E  F
0  7  1       8  1  6
1  8  2  5    8  5  8
2  9  3  6    8     5
3  1     8    1  3  4
4  6  8  2    5  0  9
5     2  N/A  1  3  8


df2
   A  B  F  C    D  E  
0  7  1  6       8  1  
1  8  2  8  5    8  5  
2  9  3  5  6    8     
3  1     4  8    1  3  
4  6  8  9  2    5  0  
5     2  8  N/A  1  3  

所以它最终应该看起来像 df2。 提前致谢。

【问题讨论】:

这能回答你的问题吗? how do I insert a column at a specific column index in pandas? & Move column by name to front of table in pandas 【参考方案1】:

get_loc得到B的位置后可以试试df.insert+df.pop

df.insert(df.columns.get_loc("B")+1,"F",df.pop("F"))
print(df)

     A  B    F    C  D    E
0  7.0  1  6.0  NaN  8  1.0
1  8.0  2  8.0  5.0  8  5.0
2  9.0  3  5.0  6.0  8  NaN
3  1.0  8  NaN  1.0  3  4.0
4  6.0  8  9.0  2.0  5  0.0
5  NaN  2  8.0  NaN  1  3.0

【讨论】:

【参考方案2】:

另一种极简主义(而且非常具体!)方法:

df = df[list('ABFCDE')]

【讨论】:

以上是关于如何在 Pandas 数据框中的特定位置插入一列? (更改熊猫数据框中的列顺序)的主要内容,如果未能解决你的问题,请参考以下文章

在pandas中,我可以同时映射列并将列插入特定索引吗?

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

附加到熊猫数据框中的列表

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]

如何对一列执行 pandas groupby 操作,但将另一列保留在结果数据框中