gpt4 book ai didi

python - 管道中的函数式编程和 python pandas 数据帧

转载 作者:行者123 更新时间:2023-11-28 20:31:29 24 4
gpt4 key购买 nike

我想知道哪种函数式编程的最佳实践是编写一个函数管道来处理 pandas 数据帧 - 或任何其他可变输入类型 - 作为函数的输入。

这里有 2 个想法,但希望存在更好的东西 :)

想法 # 1 - 没有函数式编程但节省内存

def foo(df, param):
df['col'] = df['col'] + param

def pipeline(df):
foo(df, 1)
foo(df, 2)
foo(df, 3)

idea # 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)

最佳答案

您可以链接对数据帧进行操作的函数调用。另请查看 pandas 中的 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))
当您使用 pipe 时,

df 将是传递给 foo 的第一个参数。

关于python - 管道中的函数式编程和 python pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54555800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com