Преобразовать словарный массив в фрейм данных - PullRequest
0 голосов
/ 11 марта 2020

Я работаю с набором данных, который привязан к сетке, с указанием времени, широты и долготы в качестве индексов и месячной температуры в качестве фактической переменной. Сначала я загружаю данные и извлекаю нужную переменную.

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

Я создаю массивы со значениями в указанных c точках. Существует одно значение для каждого месяца, начиная с 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,...   

В идеале, я бы хотел, чтобы время (каждый месяц) было строкой или индексом и чтобы все значения температуры распаковывались в соответствии с правильный месяц Как бы я пришел к этому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...