You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将含部分行的新数据列合并至主数据框并匹配对应行?

按物种匹配合并主数据框与新数据列

要实现保留主数据框的所有行,并将新数据列匹配到对应物种的需求,核心是基于Species列做左连接(Left Join)——左连接会保留主表的全部记录,仅将副表中匹配的记录合并进来,不匹配的位置自动填充NA(R)或NaN(Python)。

以下是两种常用数据分析工具的实现方法:


R语言实现

步骤1:读取/构造数据

先读取你的主CSV和新数据CSV,或者构造示例数据:

# 读取真实文件
master <- read.csv("你的主数据文件路径.csv")
newdata <- read.csv("你的新数据文件路径.csv")

# 或构造示例数据(对应你给出的案例)
master <- data.frame(
  Species = c("regnans", "cornuta", "caesia", "viminalis", "plumula"),
  Variable1 = c(400, 421, 378, 397, 401),
  Variable2 = c(0.1, 0.1, 0.2, 0.3, 0.1)
)

newdata <- data.frame(
  Species = c("regnans", "viminalis", "plumula"),
  NewVariable = c(5, 9, 7)
)

步骤2:左连接合并数据

使用merge()函数,指定按Species匹配,同时保留主表所有行:

# sort=FALSE 可保留主表原始行顺序,默认会按Species排序
master.updated <- merge(master, newdata, by = "Species", all.x = TRUE, sort = FALSE)

合并结果

> master.updated
    Species Variable1 Variable2 NewVariable
1   regnans       400       0.1           5
2   cornuta       421       0.1          NA
3    caesia       378       0.2          NA
4 viminalis       397       0.3           9
5   plumula       401       0.1           7

Python(Pandas)实现

步骤1:读取/构造数据

import pandas as pd

# 读取真实文件
master = pd.read_csv("你的主数据文件路径.csv")
newdata = pd.read_csv("你的新数据文件路径.csv")

# 或构造示例数据
master = pd.DataFrame({
    "Species": ["regnans", "cornuta", "caesia", "viminalis", "plumula"],
    "Variable1": [400, 421, 378, 397, 401],
    "Variable2": [0.1, 0.1, 0.2, 0.3, 0.1]
})

newdata = pd.DataFrame({
    "Species": ["regnans", "viminalis", "plumula"],
    "NewVariable": [5, 9, 7]
})

步骤2:左连接合并数据

使用pd.merge()指定左连接规则:

master_updated = pd.merge(master, newdata, on = "Species", how = "left")

合并结果

print(master_updated)
# 输出:
     Species  Variable1  Variable2  NewVariable
0    regnans        400        0.1          5.0
1    cornuta        421        0.1          NaN
2     caesia        378        0.2          NaN
3  viminalis        397        0.3          9.0
4    plumula        401        0.1          7.0

Pandas默认保留主表原始行顺序,无需额外参数。


内容的提问来源于stack exchange,提问作者user10297843

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:15:41