如何在 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。
要求输出:
任何人都可以帮助解决这个问题,因为我在这里苦苦挣扎。
提前致谢
步骤:
- 使用第一个数据帧中的
groupby
和 filter
所需的组。
drop the duplicates
来自 df1
perform merge
更新后 df1
.
df1 = df1.groupby('Category').filter(
lambda x: x['Date'].nuique().eq(1)).drop_duplicates()
df2.merge(df1, how='left', on='Category')
我有两个数据框:
df1:
df2:
如果我使用下面的合并命令从 df1 映射 df2 中的日期,它给我的输出与 df1 相同,
df2.merge(df1, how = 'left', on='Category')
但实际上我需要如下输出,
其中,如果只返回一个日期,则分配给类别
如果返回多个日期并且都是唯一的,则分配一次唯一的日期
如果返回多个日期并且有多个唯一日期可用,则分配 None。
要求输出:
任何人都可以帮助解决这个问题,因为我在这里苦苦挣扎。
提前致谢
步骤:
- 使用第一个数据帧中的
groupby
和filter
所需的组。 drop the duplicates
来自 df1perform merge
更新后df1
.
df1 = df1.groupby('Category').filter(
lambda x: x['Date'].nuique().eq(1)).drop_duplicates()
df2.merge(df1, how='left', on='Category')