我有一个非常简单的问题,我无法在熊猫中解决。 我有一个数据帧开始,我希望该数据帧应用一些功能。我想重复多次,并在一个新的更大的数据帧中构建/堆叠操作的结果。我想用for循环做这个。这是一个我无法工作的简化示例:
import pandas as pd
df = pd.DataFrame(np.random.randn(3, 4), columns=list('ABCD'))
large_df = df*0
for i in range(1,10):
df_new = df*i
large_df= pd.concat(large_df,df_new)
large_df
任何想法??
答案 0 :(得分:5)
最先建立所有结果并最终连接一次。如果一次附加一个结果,则每次都必须重新分配结果的内存。
因此,如果您通过循环将some_function
与其他参数p
一起应用(例如上面的玩具示例中的i
),我建议:
pd.concat([df.apply(lambda x: some_function(x, p)) for p in parameters])