Скажем, я хочу использовать xarray для работы с некоторыми ежедневными данными о погоде, организованными аналогично этому примеру из документации xarray:
Однако данные предоставляются мне в нескольких файлах Excel, где каждый файл содержит данные за один день. Имена файлов содержат информацию о дате, а внутри файлы выглядят как этот игрушечный пример:
X Y Temp Prec
1 1 21 34
1 2 24 4
1 3 22 35
2 1 23 36
Я могу читать файлы в фреймах данных pandas:
for f in files:
datestring = f.split('.')[0]
date = datetime.strptime(datestring, '%Y%m%d')
df = pd.read_excel(f, 0)
df['Date'] = date
Я могу создать большой фрейм данных со всеми данными (dfAll.append(df)
) и конвертировать между фреймами данных и наборами данных (xr.Dataset.from_dataframe(df)
). Однако я не могу переиндексировать и организовать свой набор данных, как показано на изображении. Мой набор данных выглядит следующим образом:
<xarray.Dataset>
Dimensions: (index: 120)
Coordinates:
* index (index) int64 106 107 108 109 ...
Data variables:
X (index) float64 1 1 1 2 ...
Y (index) float64 1 2 3 1 ...
Temp (index) float64 21 24 22 23 ...
Prec (index) float64 34 40 35 36 ...
Date (index) datetime64[ns] 2017-01-02 2017-01-02 2017-01-02 ...
Как я могу реорганизовать свои данные, как в примере? Какие операции нужно делать в пандах, а какие в xarray? В основном я хотел бы иметь дату, X и Y в качестве меток, а данные Temp и Prec - в качестве переменных.