在R语言中合并不同数据集同名列并整合元素的方法
Pandas 按列名合并并整合两个数据框
数据框结构
现有两个数据框 df_1 和 df_2,结构如下:
df_1
| X | X1 | X2 | X3 |
|---|---|---|---|
| A | B | C | D |
| E | E | F | G |
| H | I | J | L |
df_2
| X | X4 | X5 |
|---|---|---|
| Z | Y | W |
| P | O | S |
期望结果
合并后需得到如下结构的数据框,按列名整合元素,缺失值用 NA 填充:
| X | X1 | X2 | X3 | X4 | X5 |
|---|---|---|---|---|---|
| A | B | C | D | Y | W |
| E | E | F | G | O | S |
| H | I | J | L | NA | NA |
| Z | NA | NA | NA | NA | NA |
| P | NA | NA | NA | NA | NA |
实现代码
使用 Pandas 可通过以下代码实现需求:
import pandas as pd import numpy as np # 构造原始数据框 df_1 = pd.DataFrame({ 'X': ['A', 'E', 'H'], 'X1': ['B', 'E', 'I'], 'X2': ['C', 'F', 'J'], 'X3': ['D', 'G', 'L'] }) df_2 = pd.DataFrame({ 'X': ['Z', 'P'], 'X4': ['Y', 'O'], 'X5': ['W', 'S'] }) # 按行索引合并df_1与df_2的X4、X5列,补全缺失值 merged_part = pd.concat([df_1, df_2[['X4', 'X5']]], axis=1).fillna(np.nan) # 构造需要追加的行,仅保留df_2的X列,其余列填充NA append_part = df_2[['X']].assign(X1=np.nan, X2=np.nan, X3=np.nan, X4=np.nan, X5=np.nan) # 合并两部分得到最终结果 final_df = pd.concat([merged_part, append_part], ignore_index=True) # 查看结果 print(final_df)
代码说明
- 基础部分合并:用
pd.concat(axis=1)将df_1和df_2的X4、X5列按行索引对齐合并,行数不足的位置自动填充NA。 - 构造追加行:从
df_2提取X列,通过assign方法为其他列统一赋值NA。 - 最终合并:用
pd.concat(axis=0)将基础部分和追加行合并,ignore_index=True重置索引确保序号连续。
内容的提问来源于stack exchange,提问作者Kiyoshi
相关产品推荐
相关产品推荐

