如何在 Python pandas 中的合并语法中逐行应用函数

How to apply a function row by row in merge syntax in Python pandas

我有两个数据框:

df1:

df2:

如果我使用下面的合并命令从 df1 映射 df2 中的日期,它给我的输出与 df1 相同,

df2.merge(df1, how = 'left', on='Category')

但实际上我需要如下输出,

其中,如果只返回一个日期,则分配给类别

如果返回多个日期并且都是唯一的,则分配一次唯一的日期

如果返回多个日期并且有多个唯一日期可用,则分配 None。

要求输出:

任何人都可以帮助解决这个问题,因为我在这里苦苦挣扎。

提前致谢

步骤:

  1. 使用第一个数据帧中的 groupbyfilter 所需的组。
  2. drop the duplicates 来自 df1
  3. perform merge 更新后 df1.
df1 = df1.groupby('Category').filter(
    lambda x: x['Date'].nuique().eq(1)).drop_duplicates()
df2.merge(df1, how='left', on='Category')