我有一個df看起來像這樣的資料集:
mandant posnr aufdat
9 120300001 13.01.20 00:00
9 180200017 13.02.20 00:00
9 180300010 03.02.20 00:00
我想將此與字典newDict['second']中的另一個資料集連接起來,如下所示:
mandant nr jahr
0 1032 2016
0 1291 2016
0 5442 2016
0 5502 2016
通常,我會像這樣進行內部聯接:
df_merged = df.merge(newDict['second'],
left_on=['nrkreis_nr'],
right_on=['nr'],
how='inner')
但是,現在我需要使用兩個條件執行連接。第一個是上面提到的,第二個是
newDict['second'].jahr = year of (df.aufdat)
來自df.aufdatcol 的值最初看起來像這樣13.01.20 00:00。在這種情況下,如何將兩個連接條件一起使用,尤其是因為我需要基于子字串而不是完整字串進行連接?
uj5u.com熱心網友回復:
創建一個名為新列jahr在df通過轉換為日期時間,并Series.dt.year在這兩個添加此列left_on和right_on引數:
df_merged = (df.assign(jahr = pd.to_datetime(df['aufdat'], format='%d.%m.%y %H:%M').dt.year)
.merge(newDict['second'],
left_on=['nrkreis_nr','jahr'],
right_on=['nr','jahr']))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/315222.html
上一篇:當col名稱相似時添加后綴
