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

求助:如何使用Pandas按PatientID_Time列合并两个关联DataFrame?

基于PatientID_Time合并DataFrame的解决方案

直接用pandas的merge函数就能实现按相同PatientID_Time合并两个DataFrame,提取对应SeqID和HB_Mayo_impu的步骤如下:

基础合并代码

假设你的两个DataFrame分别命名为df1(含SeqID的那个)和df2(含HB_Mayo_impu的那个),执行以下代码:

import pandas as pd

# 按PatientID_Time列合并,默认取两个表都存在的匹配项(inner连接)
merged_df = pd.merge(df1, df2, on='PatientID_Time', how='inner')

# 提取你需要的三列
result_df = merged_df[['PatientID_Time', 'SeqID', 'HB_Mayo_impu']]

常见问题排查(如果之前合并失败)

  • 列名不一致:检查两个表的合并列名是否完全一致(比如大小写、空格),可以用print(df1.columns)和print(df2.columns)确认,不一致的话用rename统一:
    # 示例:如果df2的列名是patientid_time,改成和df1一致
    df2.rename(columns={'patientid_time': 'PatientID_Time'}, inplace=True)
    
  • 重复值导致结果异常:如果某个PatientID_Time在单个表中有重复行,合并后会出现笛卡尔积。可以先去重:
    df1 = df1.drop_duplicates(subset='PatientID_Time')
    df2 = df2.drop_duplicates(subset='PatientID_Time')
    
  • 连接方式选择:如果需要保留某一个表的所有行(即使另一个表无匹配),可以修改how参数:
    • how='left':保留df1的所有行,匹配不到的df2列值为NaN
    • how='right':保留df2的所有行,匹配不到的df1列值为NaN
    • how='outer':保留两个表的所有行,匹配不到的列值为NaN

内容的提问来源于stack exchange,提问作者RECEP TAYYİP DURGUT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:58:56