【问题标题】:Multiindex to different columns in Pandas DataframePandas Dataframe 中不同列的多索引
【发布时间】:2016-02-17 23:27:07
【问题描述】:

在通过xray 读入netCDF 文件后,我得到一个带有multiindex 的熊猫dataframe,如下所示:

                   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,如果可以,我该怎么做?

提前致谢:)

附言我使用python 3.5.0pandas 0.17.0xray 0.6.1

【问题讨论】:

    标签: python pandas dataframe multi-index python-xarray


    【解决方案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
    

    【讨论】:

    • 谢谢,你的评论我已经解决了问题:)
    猜你喜欢
    • 2021-11-22
    • 2021-12-01
    • 2014-03-30
    • 2019-04-13
    • 2020-09-13
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2014-01-01
    相关资源
    最近更新 更多