2 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
所以在完成這個(gè)項(xiàng)目后,我獲得了更多的見識(shí)。我找到了一個(gè)解決方案,但希望有cleaner一個(gè)解決方案。但這有效:我們可以連接來自原始數(shù)據(jù)幀的行,這些行具有ClockIndate.isnull:
df_merge = pd.merge(df1, df2, on=['Company', 'Resource'], how='left')
df_filter = df_merge[df_merge.ClockInDate.between(df_merge.EffectiveFrom, df_merge.EffectiveTo) | df_merge.EffectiveFrom.isnull()]
df_final = pd.concat([df_filter, df1[df1.ClockInDate.isnull()]], sort=True)
print(df_final)
ClockInDate Company EffectiveFrom EffectiveTo Resource
1 2019-02-09 A 2019-01-01 2099-12-31 ResA
3 2019-02-09 A 2019-01-01 2099-12-31 ResB
4 2019-02-09 A NaT NaT ResC
5 2019-02-09 B NaT NaT ResD
7 2019-02-09 B 2019-01-01 2099-12-31 ResE
9 2019-02-09 B 2019-01-01 2099-12-31 ResF
6 NaT B NaT NaT ResG
添加回答
舉報(bào)