【问题标题】:Using pivot / aggregation in dataframe [closed]在数据框中使用数据透视/聚合 [关闭]
【发布时间】:2020-02-06 10:23:11
【问题描述】:

有一个数据框,其中列名称值和日期格式为 dd

name  value date

mark  200  1   
john  300  1
mark  200  2
mark  200  2     
mark  300  2 
john  300  3
john  400  2

使用pivot和聚合需要使用pandas转换成this

date  name   count(date)  value
1     mark       1         200
2     mark       3         700
1     john       1         300
2     john       2         300
3     john       1         400

【问题讨论】:

    标签: python pandas dataframe group-by pivot


    【解决方案1】:

    GroupBy.agg 与元组列表中的聚合函数一起使用:

    df1 = (df.groupby(['date','name'])['value']
             .agg([('count', 'size'), ('value','sum')])
             .reset_index())
    print (df1)
       date  name  count  value
    0     1  john      1    300
    1     1  mark      1    200
    2     2  john      1    400
    3     2  mark      3    700
    4     3  john      1    300
    

    另一个在 pandas 0.25+ 中使用named aggregations 的解决方案:

    df1 = (df.groupby(['date','name'])
             .agg(count=('date', 'size'), value= ('value','sum'))
             .reset_index())
    print (df1)
       date  name  count  value
    0     1  john      1    300
    1     1  mark      1    200
    2     2  john      1    400
    3     2  mark      3    700
    4     3  john      1    300
    

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多