如何将df1的a1-a4表头及id首列数据添加到df2中
操作实现方案
以下是两种主流数据处理语言的实现方法,默认你给出的两个数据框行数一致,可直接执行:
Python(Pandas 环境)
操作步骤:
- 给df2设置列名,直接复用df1除id外的列名:
df2.columns = df1.columns.drop('id') - 将df1的id列插入到df2的最左侧:
df2.insert(0, 'id', df1['id'])
完整可运行示例:
import pandas as pd # 模拟示例数据 df1 = pd.DataFrame({ 'id': [21, 22], 'a1': [.2, .4], 'a2': [.4, .5], 'a3': [.1, .1], 'a4': [.7, .2] }) df2 = pd.DataFrame([ [.2, .4, .2, .3], [.3, .5, .2, .1] ]) # 执行替换和新增操作 df2.columns = df1.columns.drop('id') df2.insert(0, 'id', df1['id']) # 查看最终df2 print(df2)
输出结果:
id a1 a2 a3 a4 0 21 0.2 0.4 0.2 0.3 1 22 0.3 0.5 0.2 0.1
R语言环境
Base R 实现:
# 设置列名 colnames(df2) <- setdiff(colnames(df1), "id") # 新增id列到最左侧 df2 <- cbind(id = df1$id, df2)
dplyr 实现:
library(dplyr) df2 <- df2 %>% # 复用df1除id外的列名 set_names(setdiff(colnames(df1), "id")) %>% # 新增id列到最左侧 mutate(id = df1$id, .before = 1)
注意:如果两个数据框行数不一致,需要先按匹配规则对齐数据后再执行上述操作,避免字段错位。
内容的提问来源于stack exchange,提问作者Lucky
相关产品推荐
相关产品推荐

