我有两个数据框,我正在尝试在 id 和 date 列上加入这两个数据框。
加入条件是这样的:
df1.join(df2,
(df1.id == df2.id) &
F.when(df1.date < df2.agg(F.min(df2.start_date)),True)
.when(df1.date.between(df2.start_date, edf2.end_date), True)
.otherwise(None)
how='left'
)
当我试图这样做时,它会抛出一个属性错误:'DataFrame' 对象没有属性'_get_object_id'
我想要的是?
样本数据: df1: id 日期名称 1 20190821 内 1 20190828 罗恩 1 20190823 梅斯 1 20190819 杆 1 20190701 孙 df2(查找): id start_date end_date group_id 1 20190827 20301212 C 1 20190823 20190826 C 1 20190821 20190822 B 预期输出: id 日期名称 group_id 1 20190821 内 B 1 20190828 罗恩 C 1 20190823 梅斯 C 1 20190819 杆 B 1 20190701 孙乙
如果 df1.date 小于 min df2.start_date 那么它应该选择 min df2.star_date 的 group_id 即 B
有没有有效的方法来做到这一点(数据量很大)?