将字典数组转换为数据帧

2024-06-03 12:39:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个网格化的数据集,以时间、纬度和经度作为索引,以月温度作为实际变量。我首先加载数据并提取所需的变量

data=xr.open_dataset('E:/Riskpulse_HD/Jon climate study/adaptor.mars.internal-1583855532.1432714-8122-5-ace27afd-90c0-4a7d-b9ca-f3d5528c5ea1.nc')
temp = data['t2m'][:,0,:,:]-273

我使用特定点的值创建数组。每个月都有一个值,从1990-01-01开始,然后1991-02-01以此类推。现在,我创建了一本字典,收录了世界上几个城市的不同纬度和纬度点

Shanghai=temp.sel(latitude=31.25, longitude=121.5)
Singapore= temp.sel(latitude=1.25, longitude=103.75)
Shenzhen= temp.sel(latitude=22.5, longitude=114)
Ningbo_Zhoushan= temp.sel(latitude=29.75, longitude=121.5)
Guangzhou= temp.sel(latitude=23.0, longitude=113.5)

citiesdf = {
    "Shanghai": Shanghai,
    "Singapore": Singapore,
    "Shenzhen": Shenzhen,
    "Ningbo-Zhoushan": Ningbo_Zhoushan,
    "Guangzhou": Guangzhou}

现在我尝试创建数据帧本身

df=pd.DataFrame([citiesdf], columns=citiesdf.keys())

但我得到一些奇怪的输出,看起来像这样(仅前两个城市)

    Shanghai                                                Singapore                            
0   [<xarray.DataArray 't2m' ()>\narray(5.1273193,...       [<xarray.DataArray 't2m' ()>\narray(26.064209,...   

理想情况下,我希望时间(每个月)是一行或一个索引,并将所有温度值解包到正确的月份。我怎样才能做到这一点


Tags: 数据时间templatitude纬度longitudeselguangzhou