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

Python:基于条件将不同长度DataFrame的信息提取合并到另一DataFrame

实现方法

你需要的是基于两个共同键的多对一表合并,直接使用Pandas内置的merge函数即可,不需要额外处理两个DataFrame的长度差异:

import pandas as pd

# 以df1为基准,按date、day_period两个字段匹配df2的对应字段
result_df = pd.merge(
    left=df1,
    right=df2,
    on=["date", "day_period"],
    how="left"
)

参数说明

  • on=["date", "day_period"]:指定两个表的匹配规则,只有两个字段同时相等的行才会匹配成功
  • how="left":指定左连接逻辑,完整保留df1的所有行,匹配成功的行自动填充df2的对应列值,未匹配到的位置默认填充NaN

前置校验建议

为了避免合并后行数异常膨胀,可以先校验df2的匹配键是否唯一:

# 输出为True说明df2不存在重复的(date, day_period)组合
print(df2.duplicated(subset=["date", "day_period"]).sum() == 0)

如果存在重复键,可先对df2去重后再合并:

# 保留每个(date, day_period)的第一条记录
df2_unique = df2.drop_duplicates(subset=["date", "day_period"], keep="first")

注:你给出的示例输出存在逻辑偏差,按匹配规则,df1中所有date=2021-06-09且day_period=Morning的行,匹配到的应该是df2中对应行的temperature=14、atmospheric_pressure=30.1等值,上述代码会输出符合逻辑的匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:06:03