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

时间:2014-03-21 11:11:14

标签: python for-loop pandas dataframe

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

任何想法??

1 个答案:

答案 0 :(得分:5)

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

因此,如果您通过循环将some_function与其他参数p一起应用(例如上面的玩具示例中的i),我建议:

pd.concat([df.apply(lambda x: some_function(x, p)) for p in parameters])