【问题标题】:how to convert header row into new columns in python pandas?python - 如何将标题行转换为python pandas中的新列?
【发布时间】:2016-08-30 11:16:30
【问题描述】:

我有以下数据框:

A,B,C
1,2,3

我必须将上面的数据框转换成以下格式:

cols,vals
A,1
B,2
c,3

如何在 pandas 中创建列名作为新列?

【问题讨论】:

    标签: python python-2.7 pandas dataframe transpose


    【解决方案1】:

    你可以通过T转调:

    import pandas as pd
    
    df = pd.DataFrame({'A': {0: 1}, 'C': {0: 3}, 'B': {0: 2}})
    
    print (df)
       A  B  C
    0  1  2  3
    
    print (df.T)
       0
    A  1
    B  2
    C  3
    
    df1 = df.T.reset_index()
    df1.columns = ['cols','vals']
    print (df1)
      cols  vals
    0    A     1
    1    B     2
    2    C     3
    

    如果DataFrame 有更多的行,你可以使用:

    import pandas as pd
    
    df = pd.DataFrame({'A': {0: 1, 1: 9, 2: 1}, 
                      'C': {0: 3, 1: 6, 2: 7}, 
                      'B': {0: 2, 1: 4, 2: 8}})
    
    print (df)
       A  B  C
    0  1  2  3
    1  9  4  6
    2  1  8  7
    
    df.index = 'vals' + df.index.astype(str)
    
    print (df.T)
       vals0  vals1  vals2
    A      1      9      1
    B      2      4      8
    C      3      6      7
    
    df1 = df.T.reset_index().rename(columns={'index':'cols'})
    print (df1)
    
      cols  vals0  vals1  vals2
    0    A      1      9      1
    1    B      2      4      8
    2    C      3      6      7
    

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 2021-11-09
      • 2014-11-26
      • 2022-01-23
      相关资源
      最近更新 更多