【问题标题】:Transform Dates in Dataframe Columns into New Columns将数据框列中的日期转换为新列
【发布时间】:2020-08-24 18:27:49
【问题描述】:

下面是 Excel 的屏幕截图,但假设我们有一个 Pandas 数据框,看起来像左侧的表格,其中有一列中有日期。有没有一种简单的方法可以将其转换为看起来像右侧表格的数据框,以便日期成为新列?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    使用df.pivot

    import pandas as pd
    
    df = df.pivot(index='Name', columns='Date', values='Candies')
    df = df.reset_index().rename_axis(None, axis=1)
    df
    

    输出:

        Name  4/01/20  4/02/20  4/03/20  4/04/20  4/05/20  4/06/20  4/07/20   4/08/20  4/09/20  
    0  Alice        1        2        3        4        5        6        7         8        9
    1    Bob        2        4        2        4        3        2        1         3        0
    

    【讨论】:

    • 我收到Index contains duplicate entries, cannot reshape 错误。你知道如何解决这个问题吗?
    • 其实我修好了!我使用pivot_table() 而不是pivot。非常感谢!
    【解决方案2】:

    您可以按照上面建议的@victor 阅读.xlsx(根据需要更改参数)。

     df=pd.read_excel('my_excel.xlsx')
    

    按“名称”和“日期”列对数据框进行分组,并获得蜡烛的总和。

     df_grouped=df.groupby(['name','date'])['candles'].agg('sum').reset_index()
    

    现在使用“pivot_table”pandas 方法来旋转分组结果。

     df_pivot=df_grouped.pivot_table('candles', 'name', 'date')
    

    【讨论】:

    • 我实际上并没有尝试汇总数据,但仍然感谢您!
    猜你喜欢
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多