作者:算错的账目 | 来源:互联网 | 2022-11-18 15:57
我想知道哪种函数式编程的最佳实践是编写一系列函数来处理熊猫数据框-或任何其他可变输入类型-作为函数的输入。
这里有两个想法,但是希望有更好的东西:)
想法#1-不进行功能编程而是节省内存
def foo(df, param):
df['col'] = df['col'] + param
def pipeline(df):
foo(df, 1)
foo(df, 2)
foo(df, 3)
想法#2-更多的功能编程,但是通过执行.copy()浪费了内存
def foo(df, param):
df = df.copy()
df['col'] = df['col'] + param
return df
def pipeline(df):
df1 = foo(df, 1)
df2 = foo(df1, 2)
df3 = foo(df2, 3)
T Burgis..
5
您可以链接在数据帧上运行的函数调用。还可以看看DataFrame.pipe
熊猫。像这样,添加了两个非foo操作:
df = (df.pipe(foo,1)
.pipe(foo,2)
.pipe(foo,3)
.drop(columns=['drop','these'])
.assign(NEW_COL=lambda x: x['OLD_COL'] / 10))
df
将是foo
您使用时传递给它的第一个参数pipe
。
1> T Burgis..:
您可以链接在数据帧上运行的函数调用。还可以看看DataFrame.pipe
熊猫。像这样,添加了两个非foo操作:
df = (df.pipe(foo,1)
.pipe(foo,2)
.pipe(foo,3)
.drop(columns=['drop','these'])
.assign(NEW_COL=lambda x: x['OLD_COL'] / 10))
df
将是foo
您使用时传递给它的第一个参数pipe
。