zoukankan      html  css  js  c++  java
  • pandas将DataFrame的列变成行索引

    pandas提供了set_index方法可以将DataFrame的列(多列)变成行索引,通过reset_index方法可以将层次化索引的级别会被转移到列里面。

    1、DataFrame的set_index方法

        data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
    
        print(data)
    
        '''
    
           A  B  C
    
        a  1  2  3
    
        b  4  5  6
    
        c  7  8  9
    
        '''
    
        #将列索引为B的列变成data的行索引
    
        print(data.set_index("B"))
    
        '''
    
          A  C
    
        B
    
        2  1  3
    
        5  4  6
    
        8  7  9
    
        '''
    
        #获取行索引
    
        print(data.set_index("B").index)
    
        #Int64Index([2, 5, 8], dtype='int64', name='B')
    
        #获取列索引
    
        print(data.set_index("B").columns)
    
        #Index(['A', 'C'], dtype='object')
    
        #将列索引为A和C的列变成行索引,层次化索引
    
        print(data.set_index(["A","C"]))
    
        '''
    
             B
    
        A C
    
        1 3  2
    
        4 6  5
    
        7 9  8
    
        '''

    2、DataFrame的reset_index方法

    data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
    
        print(data)
    
        '''
    
           A  B  C
    
        a  1  2  3
    
        b  4  5  6
    
        c  7  8  9
    
        '''
    
        print(data.set_index(["C"]))
    
        '''
    
           A  B
    
        C
    
        3  1  2
    
        6  4  5
    
        9  7  8
    
        '''
    
        #相对于data来说行索引从原来的a、b、c变成了0、12
    
        #在使用set_index方法的时候行索引就已经被修改了
    
        print(data.set_index(["C"]).reset_index())
    
        '''
    
           C  A  B
    
        0  3  1  2
    
        1  6  4  5
    
        2  9  7  8
    
        '''
    
        print(data.index)
    
        #Index(['a', 'b', 'c'], dtype='object')
    
        print(data.set_index(["C"]).reset_index().index)
    
        #RangeIndex(start=0, stop=3, step=1)
    
        print(data.set_index(["C"]).reset_index().columns)
    
        #Index(['C', 'A', 'B'], dtype='object')

    参考:https://blog.csdn.net/sinat_29957455/article/details/79038658

  • 相关阅读:
    tomcat常见报错解决方法汇总
    C++中socket编程
    Winsock解析
    等价类划分的原则
    在线编译器
    条件覆盖,路径覆盖,语句覆盖,分支覆盖解释
    并发测试
    针对C程序员的 C++
    缸中之脑
    什么是薛定谔的猫
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/9579533.html
Copyright © 2011-2022 走看看