Python pandas中如何拼接两个DataFrame?标签编码列与原表合并方法
实现方案
两个DataFrame行数完全一致、行顺序一一对应(标签编码过程未打乱行序)的前提下,最简单的实现方式是按列拼接:
- 核心方法用
pandas.concat,指定轴向为列(axis=1)即可,代码示例如下:
import pandas as pd # 模拟原始DataFrame df_original = pd.DataFrame({ 'age': [32, 25], 'salary': [3000, 2300] }) # 模拟标签编码后的DataFrame df_encoded = pd.DataFrame({ 'country': [1, 4], 'gender': [1, 2] }) # 按列拼接完成合并 df_merged = pd.concat([df_original, df_encoded], axis=1)
执行后df_merged就是你需要的目标结果。
补充优化建议
- 如果担心行序错位,可使用
join方法按索引对齐拼接,效果和上述方法一致:df_merged = df_original.join(df_encoded) - 如果原始数据本身就包含
country、gender分类列,不需要拆分DataFrame再合并,可以直接在原DataFrame上生成编码列,更高效:from sklearn.preprocessing import LabelEncoder le = LabelEncoder() # 直接给原df更新编码后的列 df_original['country'] = le.fit_transform(df_original['country']) df_original['gender'] = le.fit_transform(df_original['gender'])
内容的提问来源于stack exchange,提问作者RasK
相关产品推荐
相关产品推荐

