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

Python 如何使用多个数据集运行1个函数?,python,python-3.x,python-2.7,pandas,dataframe,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=F

假设我得到了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,依此类推。

如果将数据帧存储在列表中,您可以在整个数据帧中循环:

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

要读取文件夹中的所有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))
导入操作系统
路径到目录=“”
filenames=os.listdir(路径到目录)
csvs=[f表示文件名中的f,如果f.endswith('csv')]
out=[]
对于CSV中的路径:
df=pd.read\u csv(路径)
out.append(CalculateEMA(df,窗口))

是否有其他方法读取数据而不是逐个读取?就像我必须像df1=pd一样读它一样。读_csv('....'),重复20次