【问题标题】:Multiple operations on DataframeDataframe 上的多项操作
【发布时间】:2016-07-08 16:35:11
【问题描述】:

我正在尝试按一/两列分组,对第四列的值求和并在第五列中找到平均值。每个操作都写在单独的输出中。感觉有点棘手,甚至开始。

输入:无标题,行数超过 100k

StartTime, EndTime,Day,SumCount,UniqueCount
00:00:00,01:00:00,Mon,13534,594
01:00:00,02:00:00,Mon,16674,626
02:00:00,03:00:00,Mon,23736,671
03:00:00,04:00:00,Mon,16977,671
00:00:00,01:00:00,Tue,17262,747
01:00:00,02:00:00,Tue,19072,777
02:00:00,03:00:00,Tue,18275,785
03:00:00,04:00:00,Tue,13589,757
04:00:00,05:00:00,Tue,16053,735
05:00:00,06:00:00,Tue,11440,636

我要找的是

  1. Groupby StartTime & EndTime 求和 SumCount 和中位数 UniqueCount
  2. Groupby Dayfind SumCount 的总和和UniqueCount 的中位数

我不知道如何将两种类型的 groupby 放在一个程序中并获得两种不同的输出。

【问题讨论】:

    标签: python pandas dataframe aggregate median


    【解决方案1】:

    试试:

    df.groupby(['StartTime', 'EndTime']).agg({'SumCount': ['sum'],
                                 'UniqueCount': {'median': lambda x: np.median(x).round(0)}})
    

    或者:

    df.groupby(['Day']).agg({'SumCount': ['sum'],
                             'UniqueCount': {'median': lambda x: np.median(x).round(0)}})
    

    【讨论】:

    • 谢谢!但我不能有中位数的浮点值。我该如何四舍五入?
    • @SitzBlogz 更新帖子
    • 非常感谢。如果我得到任何错误将回写。再次感谢?
    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2018-12-01
    • 2014-06-28
    相关资源
    最近更新 更多