我有两个 Pandas 数据帧,一个包含天气信息,每小时给出一次,另一个包含公交车到达数据,大约每分钟左右给出一次。
我想加入数据帧,以便总线数据与该小时的天气相关联,例如2012 年 1 月 6 日下午 1 点至 2 点之间的公交车数据将与相应的天气数据相关联。
例如总线数据
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
例如天气数据
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
有办法做到这一点吗?非常感谢任何帮助。
最佳答案
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
关于python - 按小时范围加入 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44551864/