python - 按小时范围加入 Pandas 数据框

标签 python pandas

我有两个 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/

相关文章:

python - 在文件中查找字符串的最快方法

python - 如何将assertSequenceEqual与pandas系列一起使用?

python-3.x - Pandas Dataframe 使用合并过滤结果。编码解码问题

python - 如何使用 VS Code 在 Jupyter Notebook 中隐藏代码?

python - 仅绘制热图的上/下三角形

python - 有没有更好的方法来索引数据帧?

python - 基于精确字符串匹配过滤 Pandas Data Frame

python - 将数据帧写入 tex 文件时删除索引

python - pandas read_csv 节标志结束

python - 从 Python 中的字典中删除键返回新字典