pandas groupby agg中使用自定义函数

  统计/机器学习 数据预处理 Python    浏览次数:3617        分享
2

我有一个关于python编程的问题。用pandas我们可以进行groupby和agg的操作,比如

>>> df.groupby('my_col').agg(['mean', 'max'])

我们可以求每组的mean和max。如果我现在要在每组上用我的自定义的函数,该如何调用?

 

xiaojr   2018-07-26 11:07



   1个回答 
9

先写出自己定义的函数f,比如说我们要知道最大值和中位数的差

def my_func(x):
    res = max(x) - np.median(x)
    return res

df.groupby('my_col').agg([my_func])

如果有多个自定义的函数的话

df.groupby('loc_id').agg([my_func1, my_func2, my_func3])


SofaSofa数据科学社区DS面试题库 DS面经

WinJ   2018-07-26 22:25

感谢!正在找这个功能呢! - 何立诚   2019-08-22 00:18


  相关主题

pandas怎么求一列的移动中位数?   1回答

pandas groupby返回组内排序   2回答

嵌套dictionary类型数据转成pandas dataframe的问题   2回答

怎么添加pandas的dataframe到已有的csv文件,并且不覆盖原内容   1回答

pandas DataFrame中经常出现SettingWithCopyWarning   2回答

怎么改变pandas dataframe里column的顺序?   1回答

pandas同时返回一个dataframe的前几行(head)和后几行(tail)   2回答

怎么对pandas dataframe的列求众数   2回答

pandas新建一个只有一行的dataframe时结果返回空的dataframe   1回答

把pandas df写入csv时UnicodeEncodeError   1回答

pandas.DataFrame里at, iat, loc, iloc区别   1回答

pandas.DataFrame的index重新排列(从0开始)   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!