如何将pandas数据帧的索引转换为列?

 GXtingker 发布于 2023-02-12 10:09

这似乎相当明显,但我似乎无法弄清楚如何将数据框的索引转换为列?

例如:

df=
        gi       ptt_loc
 0  384444683      593  
 1  384444684      594 
 2  384444686      596  

至,

df=
    index1    gi       ptt_loc
 0  0     384444683      593  
 1  1     384444684      594 
 2  2     384444686      596  

behzad.nouri.. 640

之一:

df['index1'] = df.index

或者.reset_index:

df.reset_index(level=0, inplace=True)

所以,如果你有一个包含3个索引级别的多索引框架,例如:

>>> df
                       val
tick       tag obs        
2016-02-26 C   2    0.0139
2016-02-27 A   2    0.5577
2016-02-28 C   6    0.0303

并且您希望将索引中的1st(tick)和3rd(obs)级别转换为列,您可以这样做:

>>> df.reset_index(level=['tick', 'obs'])
          tick  obs     val
tag                        
C   2016-02-26    2  0.0139
A   2016-02-27    2  0.5577
C   2016-02-28    6  0.0303

使用`df.reset_index(level = df.index.names,inplace = True)`可以将给定的整个多索引转换为列 (26认同)

请记住,对于您拥有的每个索引,您必须执行n次此操作(例如,如果您有两个索引,那么您必须执行两次) (4认同)

您可以在刚添加到数据框的列上创建索引,以便其为真实列和索引吗? (2认同)

分配给列,例如`df ['index1'] = df.index`会返回警告:“正在尝试从DataFrame的切片副本上设置一个值。” 改为使用df.assign()函数,如下所示。 (2认同)


Apogentus.. 32

对于MultiIndex,您可以使用提取其子索引

df['si_name'] = R.index.get_level_values('si_name') 

si_namewhereindex的名称在哪里.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有