【问题标题】:transform pandas pivot table to regular dataframe将熊猫数据透视表转换为常规数据框
【发布时间】:2017-10-01 01:11:13
【问题描述】:

如何将 pandas 数据透视表转换为常规数据框?例如:

                           amount                                                
categories                  A                B           C  
date         deposit                                                             
2017-01-15   6220140.00    5614354.16        0.00        0.00 
2017-01-16   7384354.00    6247300.22        0.00        0.00 
2017-01-17   6783939.00    10630021.37       0.00        0.00 
2017-01-18   67940.00      4659384.47        0.00        0.00

到一个常规的日期时间,例如:

   date         deposit       A                 B           C                                                                         
0  2017-01-15   6220140.00    5614354.16        0.00        0.00 
1  2017-01-16   7384354.00    6247300.22        0.00        0.00 
2  2017-01-17   6783939.00    10630021.37       0.00        0.00 
3  2017-01-18   67940.00      4659384.47        0.00        0.00

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用droplevel + index nameNone + reset_index

    df.columns = df.columns.droplevel(0) #remove amount
    df.columns.name = None               #remove categories
    df = df.reset_index()                #index to columns
    

    或者使用rename_axis:

    df.columns = df.columns.droplevel(0)
    df = df.reset_index().rename_axis(None, axis=1)
    

    编辑:

    也许还有助于删除参数values 中的[] - 请参阅this

    【讨论】:

      【解决方案2】:
      df = pd.DataFrame(df.to_records())
      

      【讨论】:

      • 这个答案对我有用,而不是投票最多的答案。我有一个更简单的支点
      【解决方案3】:

      能够使用重置索引解决它

      Sample_df=df.reset_index()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 2018-03-09
        • 2019-10-12
        相关资源
        最近更新 更多