我有以下 2 df:
lst=[['2021-01-01','A'],['2021-01-01','B'],['2021-02-01','A'],['2021-02-01','B'],['2021-03-01','A'],['2021-03-01','B']]
df1=pd.DataFrame(lst,columns=['Date','Pf'])
lst=[['2021-02-01','A','New']]
df22=pd.DataFrame(lst,columns=['Date','Pf','Status'])
我想合并它們以獲得下面的df:
lst=[['2021-01-01','A','NaN'],['2021-01-01','B','NaN'],['2021-02-01','A','New'],['2021-02-01','B','NaN'],['2021-03-01','A','New'],['2021-03-01','B','NaN']]
df3=pd.DataFrame(lst,columns=['Date','Pf','Status'])
在 2021-02-01 期間,可以應用合并公式。但是,我希望通過更改等于或大于 2021-02-01 的日期出現與 df2 中相同的 Pf 時獲得相同的狀態“新”
你知道我該如何解決這個問題嗎?謝謝您的幫助
uj5u.com熱心網友回復:
使用merge_asof默認值direction='backward':
df1['Date'] = pd.to_datetime(df1['Date'])
df22['Date'] = pd.to_datetime(df22['Date'])
df = pd.merge_asof(df1, df22, on='Date', by='Pf')
print (df)
Date Pf Status
0 2021-01-01 A NaN
1 2021-01-01 B NaN
2 2021-02-01 A New
3 2021-02-01 B NaN
4 2021-03-01 A New
5 2021-03-01 B NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/437501.html
上一篇:谷歌云存盤-即使我是專案所有者,我也無法編輯物件的權限
下一篇:從SQLite正確選擇以前的日期
