我有两个数据框,一个来自常规CSV,另一个来自数据数组。
df1.head()
Latitude Longitude Port Name
0 39.871112 20.003421 Sarande
1 40.450605 19.483051 Vlora
2 41.810046 19.584720 Shengjin
3 41.308849 19.454677 Durres
4 35.819101 -0.247319 Bettioua
array
<xarray.DataArray (lat: 109, lon: 327)>
array([[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])
Coordinates:
* lat (lat) float64 -52.0 -51.0 -50.0 -49.0 -48.0 ... 53.0 54.0 55.0 56.0
* lon (lon) float64 28.0 29.0 30.0 31.0 32.0 ... 351.0 352.0 353.0 354.0
df2=array.to_dataframe('Longitude').unstack()
#df2.rename(columns={"B": "Latitude"}).head()
df2.reset_index()
df2.index.name='Latitude'
df2.reset_index().head()
Latitude Longitude
lon 28.0 29.0 30.0 31.0 32.0 33.0 34.0 35.0 36.0 ... 345.0 346.0 347.0 348.0 349.0 350.0 351.0 352.0 353.0 354.0
0 -52.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 -51.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 -50.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 -49.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 -48.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
df2包含纬度和经度点的值(在此处可见的点处没有)。我想做的是一些如何将两个数据帧合并为一个/创建一个新的数据集,其中Port Name
与纬度,经度匹配在一起并提供值。理想情况下,新的数据框应如下所示:
Latitude Longitude Port Name Value
x y z 1
x y z 3
我尝试使用pd.merge(),但无济于事。解决此问题的最佳方法是什么?