在我通过netCDF
阅读了xray
文件后,我得到了一张dataframe
的pandas multiindex
,如下所示:
temp
date lat lon
2012-01-01 54 10 206
11 207
55 10 210
11 214
2012-01-02 54 10 206
... ...
现在我想将multiindex
转换为不同的列来进行统计操作。我希望得到这样的pd dataframe
:
temp_54_10 temp_54_11 temp_55_10 temp_55_11
date
2012-01-01 206 207 210 214
2012-01-02 206 208 213 220
... ...
只有使用pandas或dataframe
工具才能获得此类xray
,如果是,我该怎么办呢?
提前致谢:)
P.S。我使用python 3.5.0
,pandas 0.17.0
和xray 0.6.1
答案 0 :(得分:1)
尝试取消堆叠。这假设您的数据框名为df
。
>>> df.unstack(['lat', 'lon'])
temp
lat 54 55
lon 10 11 10 11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN
如果您想加入lat_lon值,可以按如下方式进行:
df.reset_index(inplace=True)
df['lat_lon'] = ["{0}_{1}".format(lat, lon) for lat, lon in zip(df.lat, df.lon)]
>>> df.pivot(index='date', columns='lat_lon', values='temp')
lat_lon 54_10 54_11 55_10 55_11
date
2012-1-1 206 207 210 214
2012-1-2 206 NaN NaN NaN