【问题标题】:How to run 1 function with multiple dataset?如何使用多个数据集运行 1 个函数?
【发布时间】:2018-07-09 09:21:00
【问题描述】:

假设我有 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 函数的 Sumx2 是第二个数据集 df2,依此类推。

【问题讨论】:

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


    【解决方案1】:

    如果您将它们存储在列表中,您可以循环遍历您的数据框:

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

    【讨论】:

    • 是否还有其他方法可以读取数据而不是逐个读取?就像我必须像 df 1 = pd.read_csv('....') 一样阅读它,重复 20 次
    【解决方案2】:

    要读取文件夹中的所有 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))
    

    【讨论】:

      猜你喜欢
      • 2020-09-27
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多