pandas groupby agg中使用自定义函数

  统计/机器学习 数据预处理 Python    浏览次数:5216        分享
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


  相关主题

怎么把collections.Counter的计数结果转为pandas的DataFrame   2回答

pandas 如何扔掉同时满足两个特征过滤条件的数据?   1回答

pandas groupby返回组内排序   2回答

pandas返回组内某列值最大的行?   1回答

pandas df怎么根据weekgroup补齐没有的行呢   1回答

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

pandas操作出现ValueError: The truth value of a Series is ambiguous.   1回答

pd.read_csv读取数据时自动跳过空白行   1回答

怎么利用pandas获得一个列联表(contingency table)?   1回答

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

pandas读取csv中指定的某些列   2回答

怎么删除pandas dataframe中index重复的行?   2回答



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

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

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

我们谢绝答非所问。

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

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