合并两个数据框,其中一个来自数据数组

时间:2020-05-20 17:05:37

标签: python pandas dataframe python-xarray

我有两个数据框,一个来自常规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(),但无济于事。解决此问题的最佳方法是什么?

0 个答案:

没有答案