程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用户定义的函数与 df.groupby Pandas 兼容大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用户定义的函数与 df.groupby Pandas 兼容?

开发过程中遇到使用户定义的函数与 df.groupby Pandas 兼容的问题如何解决?下面主要结合日常开发的经验,给出你关于使用户定义的函数与 df.groupby Pandas 兼容的解决方法建议,希望对你解决使用户定义的函数与 df.groupby Pandas 兼容有所启发或帮助;

假设我有一个函数可以对某个数据框执行一些计算,其中索引是要虑的变量,列是年份。例如

df:

       1980    1981    1982 .....
var1
var2
var3
.
.
.   

def fun(col_df):
    var_new=var1+var2/var3
    var_new+=df.iloc[:,df.columns.get_loc(col_df+1)].iloc['var_new']

现在假设我有一个数据框 frame,其中观测值由年份和 ID 变量标识。此类标识符作为列进行处理。

frame:

        date  ID  var1 var2 var3...
0       1980  1   
1       1980  2
2       1981  1
3       1981  2
4       1982  1
5       1982  2

.
.
.   

我想让函数 fun 与 pandas 中的 groupby() 方法兼容。特别是我的想法是运行

frame.groupby('ID').transform('fun')

在我将 frame 转换为与 df 相同的形式之后,fun 可以毫无问题地应用。我怎样才能做到这一点?重写函数 fun 是否更好,以便它可以逐行应用,请记住,我将不得不处理 ````frame``` 形式的数据帧,它有 2标识符的类型(而不是 1)但在列中表示?

解决方法

pandas groupby transform custom function 涵盖了您必须做的事情的大纲。

你可以调用这样的函数

def f(x,col):
    return df.loc[x.index,col]*x

df['g'] = df.groupby('b')['c'].transform(f,col='d')

print(df)

它调用外部数据并通过转换获取传递参数。

大佬总结

以上是大佬教程为你收集整理的使用户定义的函数与 df.groupby Pandas 兼容全部内容,希望文章能够帮你解决使用户定义的函数与 df.groupby Pandas 兼容所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:兼容