【发布时间】:2020-05-25 19:00:43
【问题描述】:
我有一个问题 - 如何在现有列的位置向 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
【问题讨论】:
-
如果可能的话,单独添加
df,并根据要求使用concat或join或merge。 -
df1.join(df2).drop(columns = 'col2').sort_index(axis = 1)不是更简单吗? ?
标签: python pandas dataframe machine-learning one-hot-encoding