【问题标题】:How to set a name header for a lambda function within groupby in python [duplicate]如何在python中的groupby中为lambda函数设置名称标题[重复]
【发布时间】:2018-07-07 04:50:20
【问题描述】:

我正在使用以下代码进行分组和计数/求和等。

groups = df[df['isTrade'] == 1].groupby('dateTime')                         
grouped = (groups.agg({'tradeBid': [np.sum,lambda x: (x > 0).sum()],})) 

输出给我:

tradeBid    tradeBid
sum <lambda>

79  46
7   6
4   4
20  6

如何更改输出的标题(以便我的最终用户知道这些数据是什么?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以提供如下名称:

    groups.agg({'tradeBid': [('sum', np.sum), ('other', lambda x: (x > 0).sum())]})
    

    过去您可以使用 dict 而不是 2 元组列表,但现在已弃用(可能是因为列的顺序是任意的)。

    【讨论】:

    • 这是否记录在某处?
    • @ayhan:文档说 agg() 接受“列名字典 -> 函数(或函数列表)”,但没有说 2 元组列表是可接受的替代品。它也没有说现在使用 dict 会导致弃用警告。但我知道 NumPy/Pandas 中许多可以使用 dict 的东西也可以使用 (name, value) 元组列表。所以我试了一下,它奏效了。所以不,它没有记录在案。 :)
    • 是的,我从未见过它,所以我想也许他们在弃用 dict 重命名后添加了这个,但似乎总是有可能的。很高兴知道。 :)
    猜你喜欢
    • 2021-12-12
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2015-05-24
    • 2020-11-23
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多