大佬教程收集整理的这篇文章主要介绍了使用户定义的函数与 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,请注明来意。