如何在python中多次运行单个函数

时间:2015-10-12 21:28:21

标签: python pandas statistics dataframe

我尝试使用以下代码运行简单的函数n次:

 df = pd.DataFrame()

def repeat_fun(times, f, args):
    for i in range(times): f(args)

def f(x):
    g = np.random.normal(0, 1, 32)
    mm = np.random.normal(491.22, 128.23, 32)
    x = 491.22+(0.557*(mm -491.22))+(g*128.23*(np.sqrt(1-0.557**2)))
    print x
repeat_fun(2,f,df)

但是我希望结果列的运行时间方面。上面的函数给出了一个数组类型的结果。任何人都可以帮我弄清楚这个问题。

1 个答案:

答案 0 :(得分:1)

很难知道您的意思,但我认为您希望将f的结果存储为数据框中的列。如果是这样的话:

import pandas as pd
import numpy as np
df = pd.DataFrame()

def repeat_fun(times, f, args):
    for i in range(times): f(i,args)

def f(iteration,df):
    g = np.random.normal(0, 1, 32)
    mm = np.random.normal(491.22, 128.23, 32)
    x = 491.22+(0.557*(mm -491.22))+(g*128.23*(np.sqrt(1-0.557**2)))
    df[iteration] = x

repeat_fun(2,f,df)

运行此命令并查看/打印df的内容,看看是否有帮助。