如何使用多个数据集运行1个函数?

时间:2018-07-09 09:21:01

标签: python python-3.x python-2.7 pandas dataframe

假设我有20组数据,我将其读取为df1,df2,df3,df4 ... df20。 (还有其他读取或存储数据框的智能方式吗?)

我的功能如下:

def CalculateEMA(x,window):    
    sma = x.rolling(window, min_periods=window).mean()[:window]
    rest = x[window:]
    EMA_window=(pd.concat([sma, rest]).ewm(span=window,adjust=False).mean()).sum())

    return EMA_window

我希望返回所有20个数据框的EMA并存储为 X 。 所以我的最终输出将是X = [x1,x2,x3,x,x,x,x,x ... x20]。其中 x1 是df1的EMA功能的总和,而 x2 是第二个数据集df2,依此类推。

2 个答案:

答案 0 :(得分:0)

如果将它们存储在列表中,则可以遍历整个数据框:

X=list()
list_df = [df1,df2,...,df20]
for df in list_df:
    X.append(CalculateEMA(df,window))

答案 1 :(得分:0)

要读取文件夹中的所有csv文件,可以使用os函数

    import os
    path_to_dir='<your path>'
    filenames = os.listdir(path_to_dir)
    csvs=[f for f in filenames if f.endswith('csv')]
    out=[]
    for path in csvs:
        df=pd.read_csv(path)
        out.append(CalculateEMA(df,window))