我有一个包含每日时间戳的 2D 位置的商店数据集。我试图将每一行与在其他一些位置的站点进行的天气测量以及每日时间戳相匹配,以便最小化每个商店和匹配站点之间的笛卡尔距离。没有每天进行天气测量,并且站点位置可能会有所不同,因此这是在每个特定日期为每个特定商店找到最近站点的问题。
我意识到我可以构建嵌套循环来执行匹配,但我想知道这里是否有人能想到一些使用 Pandas 数据框操作来完成此操作的巧妙方法。下面显示了一个玩具示例数据集。为简单起见,它具有静态气象站位置。
store_df = pd.DataFrame({
'store_id': [1, 1, 1, 2, 2, 2, 3, 3, 3],
'x': [1, 1, 1, 4, 4, 4, 4, 4, 4],
'y': [1, 1, 1, 1, 1, 1, 4, 4, 4],
'date': [1, 2, 3, 1, 2, 3, 1, 2, 3]})
weather_station_df = pd.DataFrame({
'station_id': [1, 1, 1, 2, 2, 3, 3, 3],
'weather': [20, 21, 19, 17, 16, 18, 19, 17],
'x': [0, 0, 0, 5, 5, 3, 3, 3],
'y': [2, 2, 2, 1, 1, 3, 3, 3],
'date': [1, 2, 3, 1, 3, 1, 2, 3]})
下面的数据是期望的结果。我包括在内station_id只是为了澄清。
store_id date station_id weather
0 1 1 1 20
1 1 2 1 21
2 1 3 1 19
3 2 1 2 17
4 2 2 3 19
5 2 3 2 16
6 3 1 3 18
7 3 2 3 19
8 3 3 3 17
忽然笑
拉风的咖菲猫
相关分类