【发布时间】:2021-08-03 02:53:00
【问题描述】:
我有以下数据框df1,它实际上表示带有坐标的网格:
latitude longitude level time
0 40.008606 20.114280 880.0 3/31/1981 5:00
1 40.008606 20.114280 880.0 3/31/1981 6:00
2 40.008606 20.114280 880.0 3/31/1981 7:00
3 40.008606 20.114280 880.0 3/31/1981 8:00
4 39.665283 20.097115 855.0 3/31/1981 5:00
5 39.665283 20.097115 855.0 3/31/1981 6:00
6 39.665283 20.097115 855.0 3/31/1981 7:00
7 39.665283 20.097115 855.0 3/31/1981 8:00
8 39.665283 19.911120 860.0 3/31/1981 5:00
9 39.665283 19.911120 860.0 3/31/1981 6:00
10 39.665283 19.911120 860.0 3/31/1981 7:00
11 39.665283 19.911120 860.0 3/31/1981 8:00
我想标准化 - 将 4d 天气数据插入到网格上方,而 latitude、longitude、level 和 time 是维度。分辨率为 0.25deg latitude 和 longitude 以及分辨率为 25mbar level 的值位于以下数据框 df2:
latitude level longitude time t
0 40.00 875.0 20.00 3/31/1981 5:00 7.622246
1 40.00 875.0 20.00 3/31/1981 6:00 8.832257
2 40.00 875.0 20.00 3/31/1981 7:00 1.107310
3 40.00 875.0 20.00 3/31/1981 8:00 11.144372
4 40.00 900.0 20.00 3/31/1981 5:00 8.736878
.. ... ... ... ... ...
66 40.25 900.0 20.25 3/31/1981 8:00 6.014550
67 40.25 850.0 20.25 3/31/1981 5:00 6.729872
68 40.25 850.0 20.25 3/31/1981 6:00 8.098390
69 40.25 850.0 20.25 3/31/1981 7:00 5.234497
70 40.25 850.0 20.25 3/31/1981 8:00 5.968091
整个数据框位于this link。所以,我需要的是数据帧df2 的列t 以df1 中的新列的形式在数据帧df1 上展开标准化。希望期望的输出是明确的。
到目前为止,我正在考虑this post 解决方案,但它对所有维度都使用相同的数据类型,这里不是这种情况。我设法找到最近的latitude,longitude,level df2 并将这些列添加到 df1 然后使用:
rslt= pd.merge(df1,df2,on=["latitude","level","longitude"],how="left")
但这只会获得最近的成员,而不是平滑的插值超过上述尺寸。
感谢您提供解决此问题的任何帮助。
【问题讨论】:
标签: python pandas dataframe scipy