Pandas,用for循环构建新的数据帧

jon*_*nas 4 python for-loop dataframe pandas

我有一个非常简单的问题,我无法在熊猫中解决.我有一个数据帧开始,我希望该数据帧应用一些功能.我想重复多次,并在新的更大的数据帧中构建/堆叠操作的结果.我想用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
Run Code Online (Sandbox Code Playgroud)

有任何想法吗??

Dan*_*lan 5

最先建立所有结果并最终连接一次.如果一次追加一个结果,则每次都必须重新分配结果的内存.

所以,如果您通过循环应用some_function不同的参数p(如i上面的玩具示例中),我建议:

pd.concat([df.apply(lambda x: some_function(x, p)) for p in parameters])
Run Code Online (Sandbox Code Playgroud)