Pandas判断DataFrame值是否存在于另一个并生成匹配结果列
实现两DataFrame日期匹配拼接用户列的方法
核心思路是先对DF2按日期分组聚合,将同日期的用户拼接为单个字符串,再映射到DF1的日期列即可,有两种常用实现方式:
方法1:映射字典实现(代码更简洁)
# 构造日期到拼接后用户的映射字典 date_user_dict = df2.groupby('StartDate')['User'].apply('; '.join).to_dict() # 映射生成DF1的User列 df1['User'] = df1['Dates'].map(date_user_dict) # 可选:若需要空值替换为空字符串,补充以下代码 df1['User'] = df1['User'].fillna('')
方法2:合并实现(适合多字段匹配场景)
# 聚合DF2的同日期用户 df2_agg = df2.groupby('StartDate', as_index=False)['User'].agg('; '.join) # 左连接合并到DF1 df1 = df1.merge(df2_agg, left_on='Dates', right_on='StartDate', how='left').drop('StartDate', axis=1)
两种方法最终输出的DF1均符合预期格式,未匹配到的日期User列默认值为NaN,可根据需求自行填充空值。
内容的提问来源于stack exchange,提问作者TiiTcHY
相关产品推荐
相关产品推荐

