我试图找出如何同时将lambda函数应用于多个数据帧,而无需先将数据帧合并在一起.我正在处理大型数据集(> 60MM记录),我需要特别注意内存管理.
我希望有一种方法可以将lambda应用于基础数据帧,这样我就可以避免先将它们拼接在一起,然后在继续进行下一步之前从内存中删除该中间数据帧.
我有使用基于HDF5的数据帧避免内存问题的经验,但我宁愿尝试先探索不同的东西.
我提供了一个玩具问题来帮助证明我在说什么.
import numpy as np
import pandas as pd
# Here's an arbitrary function to use with lambda
def someFunction(input1, input2, input3, input4):
theSum = input1 + input2
theAverage = (input1 + input2 + input3 + input4) / 4
theProduct = input2 * input3 * input4
return pd.Series({'Sum' : theSum, 'Average' : theAverage, 'Product' : theProduct})
# Cook up some dummy dataframes
df1 = pd.DataFrame(np.random.randn(6,2),columns=list('AB'))
df2 = pd.DataFrame(np.random.randn(6,1),columns=list('C'))
df3 = pd.DataFrame(np.random.randn(6,1),columns=list('D'))
# Currently, I merge the …Run Code Online (Sandbox Code Playgroud)