【问题标题】:Reverting from multiindex to single index dataframe in pandas在熊猫中从多索引恢复为单索引数据框
【发布时间】:2020-07-25 17:13:05
【问题描述】:
                       NI
YEAR MONTH datetime        
2000 1     2000-01-01   NaN
           2000-01-02   NaN
           2000-01-03   NaN
           2000-01-04   NaN
           2000-01-05   NaN

在上面的数据框中,我有一个由列组成的多级索引:

names=[u'YEAR', u'MONTH', u'datetime']

如何恢复到以“datetime”为索引、以“YEAR”和“MONTH”为普通列的数据框?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    通过level=[0,1] 重置这些级别:

    dist_df = dist_df.reset_index(level=[0,1])
    
    In [28]:
    df.reset_index(level=[0,1])
    
    Out[28]:
                YEAR  MONTH  NI
    datetime                     
    2000-01-01  2000      1   NaN
    2000-01-02  2000      1   NaN
    2000-01-03  2000      1   NaN
    2000-01-04  2000      1   NaN
    2000-01-05  2000      1   NaN
    

    您也可以传递标签名称:

    df.reset_index(level=['YEAR','MONTH'])
    

    【讨论】:

    • 如果 dist_df.columns 是 MultiIndex,而不是行怎么办?
    • @DzmitryLazerka 抱歉,我不明白您的评论,如果您有任何问题,请发布新问题,在 cmets 中回答问题在 SO 上不是很好的形式
    • @DzmitryLazerka 展平多索引(分层)列/行索引,您可以使用.to_flat_index()。见this answer for code example
    • 这会改变数组的顺序吗?
    【解决方案2】:

    另一种简单的方法是为数据框设置列

    consolidated_data.columns=country_master
    

    参考:https://riptutorial.com/pandas/example/18695/how-to-change-multiindex-columns-to-standard-columns

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 2012-12-18
      • 2017-05-01
      • 2022-07-10
      相关资源
      最近更新 更多