【发布时间】:2020-09-06 06:01:14
【问题描述】:
我正在尝试使用通配符读取多个 excel 文件,并使用 pandas 将其放入单独的数据帧中。
我已经阅读了基本路径并将使用下面来访问子目录:
>>>inputs_path
'C:/Users/ABC/Downloads/Input'
>>>path1 = os.chdir(inputs_path + "/path1")
>>>fls=glob.glob("*.*")
>>>fls
['Zambia_W4.xlsm',
'Australia_W4.xlsx',
'France_W4.xlsx',
'Japan_W3.xlsm',
'India_W3.xlsx',
'Italy_W3.xlsx',
'MEA_W5.xlsx',
'NE_W5.xlsm',
'Russia_W5.xlsx',
'Spain_W2.xlsx']
>>>path2 = os.chdir(inputs_path + "/path2")
>>>fls=glob.glob("*.*")
>>>fls
['Today.xlsm',
'Yesterday.xlsx',
'Tomorrow.xlsx']
现在我正在阅读它们如下:
>>>df_italy = pd.read_excel("Italy_W3.xlsx",sheet_name='Sheet1')
>>>df_russia = pd.read_excel("Russia_W5.xlsx",sheet_name='Sheet3')
>>>df_france_1 = pd.read_excel("France_W4.xlsx",sheet_name='Sheet1', usecols = 'M, Q', skiprows=4)
>>>df_spain = pd.read_excel("Spain_W2.xlsx",sheet_name='Sheet2',usecols = 'T:U', skiprows=30 )
>>>df_ne = pd.read_excel("NE_W5.xlsm",sheet_name='Sheet2',usecols = 'N,P', skiprows=4 )
>>>df_ne_c = pd.read_excel("NE_W5.xlsm",sheet_name='Sheet1',usecols = 'H:J', skiprows=141 )
由于我在 fls 列表中有文件名,有没有一种方法可以使用该列表并读取文件,而不必实际使用实际文件名,因为文件名将根据周数更改。 在读取 excel 文件时,还必须保留上面提到的数据框名称。
我希望将文件读取为
>>>df_italy = pd.read_excel("Italy*.xlsx",sheet_name='Sheet1')
有什么办法吗?
【问题讨论】:
-
您的文件是否始终遵循相同的约定,即
country_week -
不,这不是强制性的,但可以肯定的是,国家名称将出现在文件中,无论是在开头还是中间。我已经从这里的实际文件名规范化了文件名。
-
是每个国家/地区的前一周的文件都被删除了,还是需要从与该国家/地区相关的多个文件中找出最近一周的?
-
如果当前一周的文件不存在,我们使用前几周的文件。所以需要旧周文件。
标签: python regex pandas dataframe glob