2017-06-14 82 views
1

我有兩個熊貓數據框,其中一個帶有天氣信息,每小時給出一個,另一個帶有公交車到達數據,大約每分鐘給出一次。在小時範圍內加入熊貓數據框

我想加入數據框,以便公交車數據與當天的天氣相關,例如, 2012年6月1日下午1點至2點之間的巴士數據將與相應的天氣數據相關聯。

e.g總線數據

DateTime    LineID Longitude Latitude 
2013-01-01 00:00:27  4.0  -6.279000 53.416683 
2013-01-01 00:01:33  4.0  -6.279321 53.416697 
2013-01-01 00:02:44  4.0  -6.279435 53.416492 
2013-01-01 00:03:28  4.0  -6.279553 53.416596 
2013-01-01 00:04:31  4.0  -6.279868 53.416530 

e.g天氣數據

DateTime    Temperature Rainfall 
2013-01-01 00:00:00  10    0  
2013-01-01 01:00:00  10    0  
2013-01-01 02:00:00  11    0 
2013-01-01 03:00:00  11    0.1 
2013-01-01 04:00:00  11    0.2 

有沒有辦法做到這一點?任何幫助是極大的讚賞。

+0

什麼是你預期的結果?我沒有看到任何PM時間或1-6-2012數據在您的樣本數據?你能澄清嗎? –

回答

3

IIUC,我認爲你需要pd.merge_asof

pd.merge_asof(bus_df,weather_df, on='DateTime') 

輸出:

   DateTime LineID Longitude Latitude Temperature Rainfall 
0 2013-01-01 00:00:27  4.0 -6.279000 53.416683   10  0.0 
1 2013-01-01 00:01:33  4.0 -6.279321 53.416697   10  0.0 
2 2013-01-01 00:02:44  4.0 -6.279435 53.416492   10  0.0 
3 2013-01-01 00:03:28  4.0 -6.279553 53.416596   10  0.0 
4 2013-01-01 00:04:31  4.0 -6.279868 53.416530   10  0.0 
+0

這聽起來像我所需要的。雖然我嘗試運行時出現錯誤,說「AttributeError:module'pandas'沒有屬性'merge_asof'」? – Reggie

+0

你是什麼版本的熊貓? –

+0

['pd.merge_asof'](http://pandas.pydata.org/pandas-docs/version/0.19.0/generated/pandas.merge_asof.html#pandas-merge-asof)0.19.0的新功能 –