首页 > 解决方案 > 将多列而不是现有的一列插入到熊猫数据框中

问题描述

我有一个问题 - 如何在现有列的位置向 DataFrame 插入多个(例如 3 个)列?换句话说,我有一列包含一些分类值,我用 one-hot 编码对其进行编码 - 结果,我获得了 3 个新列。现在,我想删除原始列并将结果列插入其位置(而不是数据框的末尾)。关于如何有效地做到这一点的任何想法?我会很感激任何帮助。

**df1 - Original datafarme** :

   col1 col2  col3
0   4    A    0.5
1   5    B    0.78
2   6    C    0.55
3   7    A    0.78

**df2 - created one-hot encoding of categorical col2** :

   col2_A col2_B  col2_C
0   1       0       0
1   0       1       0
2   0       0       1
3   1       0       0

如何将 df2 的列插入 df1,而不是 col2 以获得:

**Updated df1**

   col1 col2_A col2_b col2_C  col3
0   4    1      0        0    0.5
1   5    0      1        0    0.78
2   6    0      0        1    0.55
3   7    1      0        0    0.78

标签: pythonpandasdataframemachine-learningone-hot-encoding

解决方案


采用

df_concat = pd.concat([df1, df2], axis=1)

然后放弃 col_2 使用

df_concat.drop(['col_2'], axis = 1)

推荐阅读