根据你拥有的日期和年份阅读多个excel

e7arh2l6  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(206)

如何按顺序读取多个xlsx文件并将它们放置在同一Dataframe中?
现在我有下面的代码 Error: No such file or directory: 'C:\\Users\\HN_1701.xlsx' ```
months=['01','02','03','04','05','06','07','08','09','10','11','12']

years=['21','20','19','18','17']

years=list(reversed(years))

for i in years:
for j in months:

    print(r'C:\HN_'+j+i+'.xlsx')
    xls = pd.read_excel(r'C:\Users\HN_'+j+i+'.xlsx', sheet_name="ER", header=9)
qacovj5a

qacovj5a1#

你可以试试这样的。在这里,我对csv文件执行此操作,但对xlxs文件也是如此。我看了一个私人文件夹,但你可以把它翻译成你自己的。首先,定义你需要的年、月、日。创建一个空的df。

import pandas as pd
months=['04']
day = ['13','14','21']
years=['2021']

years=list(reversed(years))

df = []
for years in years:
    for months in months:
        for day in day:
            path = r"C:\Users\k_sego\repos\wagon_report_weekly\Data_by_day\\" 
            filename = "{}all_vehicle_day_agg_{}-{}-{}.csv".format(path, years, months,day)
            print(filename)
            df.append(pd.read_csv(filename, sep=";"))

返回:

C:\Users\k_sego\repos\wagon_report_weekly\Data_by_day\\all_vehicle_day_agg_2021-04-13.csv
C:\Users\k_sego\repos\wagon_report_weekly\Data_by_day\\all_vehicle_day_agg_2021-04-14.csv
C:\Users\k_sego\repos\wagon_report_weekly\Data_by_day\\all_vehicle_day_agg_2021-04-21.csv

以及你的Dataframe。

q7solyqu

q7solyqu2#

您可以使用regex方法获取所有匹配文件的列表,如下所示:

import os
import re
file_list = [file for file in os.listdir('test/') if re.search(r'HN_(01|02|03|04|05|06|07|08|09|10|11|12).{2}(21|20|19|18|17)+\.xlsx$', file)]
for file in file_list:
    xls = pd.read_excel(f'C:\Users\{file}', sheet_name="ER", header=9)

玩正则表达式,看看什么最适合你。

相关问题