【问题标题】:apply hierarchy or multi-index to pandas columns将层次结构或多索引应用于 pandas 列
【发布时间】:2014-04-10 13:09:49
【问题描述】:

我已经看到很多关于如何分层排列数据帧行索引的示例,但我正在尝试对列做同样的事情,但我不理解语法:

我正在读取 csv 文件中的内容,如下所示

df=pandas.read_csv("data.csv")

data.csv 包含如下内容:

rno,marktheory1,marklab1,marktheory2,marklab2
1,78,45,34,54
2,23,54,87,46

所以在[1]:df 给了

   rno  mark1  lab1  mark2  lab2
0    1     78    45     34    54
1    2     23    54     87    46

我想做的是向列添加层次索引甚至类似于标签的东西,使它们看起来像这样:

        Subject1     Subject2   
   rno  mark1  lab1  mark2  lab2
0    1     78    45     34    54
1    2     23    54     87    46

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    以下是适合您的快速解决方案:

    data = pd.read_csv('data.csv')
    >>> arrays = [[ '', 'Subject1', 'Subject1', 'Subject2', 'Subject2'], data.columns]
    >>> df = pd.DataFrame(data.values, columns=arrays)
    >>> print df
            Subject1        Subject2      
       rno     mark1  lab1     mark2  lab2
    0    1        78    45        34    54
    1    2        23    54        87    46
    
    [2 rows x 5 columns]
    

    只是另一种方法:

    >>> data = pd.read_csv('data.csv')
    >>> data_pieces = [data.ix[:, [0]], data.ix[:, [1, 2]], data.ix[:, [3,4]]]
    >>> data = pd.concat(data_pieces, axis=1, keys=['','Subject1', 'Subject2'])
    >>> print data
            Subject1        Subject2      
       rno     mark1  lab1     mark2  lab2
    0    1        78    45        34    54
    1    2        23    54        87    46
    
    [2 rows x 5 columns]
    

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 2018-01-04
      • 2015-05-03
      • 1970-01-01
      • 2021-08-27
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      相关资源
      最近更新 更多