Python 通过从文件名中提取日期,将其添加到数据帧列表中

Python 通过从文件名中提取日期,将其添加到数据帧列表中,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个多数据帧列表dfs 数据帧来自名称中包含日期的文件。例如,文件名yyyymmdd.xlsx 我可以从文件名中提取日期: date_extract = re.search('[0-9]{8}',files[0...20]) date = datetime.datetime.strptime(date_extract[0...20], '%Y%m%d').date() 但是,我如何为每个df分配其各自的日期(通过添加一个名为“date”的列)?如果您使用pathlib我们可以使用字典保存数

我有一个多数据帧列表
dfs

数据帧来自名称中包含日期的文件。例如,文件名yyyymmdd.xlsx

我可以从文件名中提取日期:

date_extract = re.search('[0-9]{8}',files[0...20])
date = datetime.datetime.strptime(date_extract[0...20], '%Y%m%d').date()

但是,我如何为每个
df
分配其各自的日期(通过添加一个名为“date”的列)?

如果您使用
pathlib
我们可以使用字典保存数据帧并使用快速正则表达式提取日期,当我们连接数据帧时,索引将设置为日期

import re
from pathlib import Path
dfs = {
    re.search('(\d{4}.*).xlsx',f.name).group(1): pd.read_excel(f,header=1)
    for f in Path(
        /dir
    ).glob("*.xlsx")
}


我需要的是添加一整列
df[date]
并填入相应的日期。@eduardo2111只需在末尾添加
reset\u index()
?然后可以重命名该列。类似于
pd.concat(dfs).reset_index(0).rename(columns={'level_0':'Date'})
!再次感谢@datanearel(这几天你一直在反复帮助我)。
import re
from pathlib import Path
dfs = {
    re.search('(\d{4}.*).xlsx',f.name).group(1): pd.read_excel(f,header=1)
    for f in Path(
        /dir
    ).glob("*.xlsx")
}
print(pd.concat(dfs))

  Unnamed: 0    e    f    c    d
20200610 0            0  0.0  0.0  NaN  NaN
         1            1  0.0  0.0  NaN  NaN
         2            2  0.0  0.0  NaN  NaN
         3            3  0.0  0.0  NaN  NaN
         4            4  1.0  0.0  NaN  NaN
         5            5  0.0  1.0  NaN  NaN
         6            6  0.0  0.0  NaN  NaN
         7            7  0.0  0.0  NaN  NaN
         8            8  0.0  0.0  NaN  NaN
         9            9  0.0  0.0  NaN  NaN
         10          10  0.0  0.0  NaN  NaN
         11          11  0.0  0.0  NaN  NaN
         12          12  0.0  0.0  NaN  NaN
         13          13  0.0  0.0  NaN  NaN
         14          14  0.0  0.0  NaN  NaN
         15          15  0.0  0.0  NaN  NaN
         16          16  0.0  0.0  NaN  NaN
         17          17  0.0  0.0  NaN  NaN
         18          18  0.0  0.0  NaN  NaN
         19          19  0.0  0.0  NaN  NaN
         20          20  0.0  0.0  NaN  NaN
         21          21  0.0  0.0  NaN  NaN
         22          22  0.0  0.0  NaN  NaN
         23          23  0.0  0.0  NaN  NaN
         24          24  0.0  0.0  NaN  NaN
         25          25  0.0  0.0  NaN  NaN
20201012 0            0  NaN  NaN  0.0  0.0
         1            1  NaN  NaN  0.0  0.0
         2            2  NaN  NaN  1.0  0.0
         3            3  NaN  NaN  0.0  1.0