【问题标题】:pd.read_excel only files where filename contains substring within past 5 dayspd.read_excel 仅在过去 5 天内文件名包含子字符串的文件
【发布时间】:2020-11-24 12:27:54
【问题描述】:

我正在尝试从目录中读取一些 excel 文件以附加它们。我已经尝试了一些东西,但我无法让它工作。当我第一次附加整个目录时,我的记忆就会爆炸。

基本上我有一个包含 .xlsx 文件的目录让我们说:这里的 H:\data 是 +300 个具有相似文件名的文件,例如:files.01-01-2020_amsterdam.xlsx 我只想从其中导入 5 个文件最后 5 天。我想出了:

today = pd.datetime.now().date()
today = today.strftime("%d-%m-%Y")
5days = today -5

如果我只想要一个文件,它可以工作:

os.chdir('H:\data')
df = pd.read_excel("files." + today  + "_amsterdam" +'.xlsx', sheet_name=0)

但是我怎样才能将 5 个文件放入一个 df 中?所以如果日期部分在今天和 5 天之间的任何地方?我想不知何故有一个循环,但我被卡住了。

【问题讨论】:

    标签: python pandas loops filenames


    【解决方案1】:

    这行得通吗?

    ps。变量名不能以整数开头

    import pandas as pd
    import datetime
    from datetime import date
    import os
    
    amountOfDays = 5
    
    for i in range(amountOfDays):
        dateOfDay = date.today() - datetime.timedelta(days=i)
        dateOfDay = dateOfDay.strftime("%d-%m-%Y")
    
        os.chdir('H:\data')
        path = "files." + str(dateOfDay) + '_amsterdam' + '.xlsx'
    
        if i == 0:
            df = pd.read_excel(path, sheet_name=0)
        else:
            df = df.append(pd.read_excel(path, sheet_name=0),ignore_index=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-16
      • 2016-07-17
      • 2013-05-14
      • 2013-02-06
      • 2020-05-01
      • 2017-09-24
      • 2016-07-02
      • 2013-06-19
      相关资源
      最近更新 更多