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

如何在Pandas中基于DF2的唯一ID从DF1按规则提取日期(含if语句)

直接上代码,用pandas就能实现你的需求,全程用if语句处理逻辑:

import pandas as pd

# 先把你的两个表格转换成DataFrame
df1 = pd.DataFrame({
    '唯一ID': [123, 455, 986],
    '任务': ['Track', 'Expire', 'Sell'],
    '日期1': ['28/05/2018', '', '05/01/2020'],
    '日期2': ['28/05/2018', '07/02/2018', '28/05/2018']
})

df2 = pd.DataFrame({'唯一ID': [123, 455, 986]})

# 把DF2和DF1按唯一ID关联,只保留DF2里有的记录
merged_data = pd.merge(df2, df1, on='唯一ID', how='left')

# 自定义函数处理日期选择逻辑
def pick_date(row):
    # 如果是Track任务,优先取日期1,空的话就用日期2
    if row['任务'] == 'Track':
        return row['日期1'] if row['日期1'] else row['日期2']
    # 其他任务同样遵循“日期1非空就用,空则用日期2”的规则(对应你给的期望输出)
    else:
        return row['日期1'] if row['日期1'] else row['日期2']

# 生成目标日期列
merged_data['日期'] = merged_data.apply(pick_date, axis=1)

# 提取需要的列,得到最终结果
final_result = merged_data[['唯一ID', '日期']]
print(final_result)

运行后输出就是你要的结果:

唯一ID日期
12328/05/2018
45507/02/2018
98605/01/2020

这个方案里的自定义函数完全用if语句实现了逻辑判断,清晰易懂,也能完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:25:40