Pandas Dataframe 中不同列的多索引

Multiindex to different columns in Pandas Dataframe

在我通过 xray 读取 netCDF 文件后,我得到一个 pandas dataframemultiindex 这样的:

                   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 或 xray 工具才有可能获得这样的 dataframe,如果可以,我该怎么做?

提前致谢:)

p.s。我使用 python 3.5.0pandas 0.17.0xray 0.6.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