gpt4 book ai didi

python - Pandas 分组并制作一组项目

转载 作者:行者123 更新时间:2023-12-04 03:42:50 27 4
gpt4 key购买 nike

我正在使用 pandas groupby 并希望应用该函数从组中的项目中创建一个集合。
以下结果在 TypeError: 'type' object is not iterable :

df = df.groupby('col1')['col2'].agg({'size': len, 'set': set})
但以下工作:
def to_set(x):
return set(x)

df = df.groupby('col1')['col2'].agg({'size': len, 'set': to_set})
在我的理解中,这两个表达式是相似的,第一个不起作用的原因是什么?

最佳答案

更新

  • 迟至 Pandas 0.22 版,这是一个问题。
  • 从 pandas 版本 1.1.2 开始,这不是问题。聚合 set , 不会导致 TypeError: 'type' object is not iterable .
  • 不确定功能何时更新。


  • 原答案
    因为 settype typeto_settype function :
    type(set)
    <class 'type'>

    def to_set(x):
    return set(x)

    type(to_set)

    <class 'function'>
    根据 docs , .agg()期望:

    arg : function or dict


    Function to use for aggregating groups.


    • If a function, must either work when passed a DataFrame or when passed toDataFrame.apply.

    • If passed a dict, the keys must be DataFrame columnnames.

    Accepted Combinations are:


    • string cythonized function name
    • function

    • list of functions

    • dict of columns -> functions

    • nested dict of names -> dicts of functions

    关于python - Pandas 分组并制作一组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37572611/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com