Python 循环浏览目录中的文件,在目录中添加日期列

Python 循环浏览目录中的文件,在目录中添加日期列,python,pandas,Python,Pandas,我所有的文件都有以下标题,它们可以追溯到几年前。我希望能够读取每个文件,然后将文件名中的日期添加为一列 截至2015-04-01.csv的文件类型 path = 'C:\\Users\\' filelist = os.listdir(path) #All of my .csv files I am working with file_count = len(filelist) #I thought I could do a for loop and use this as

我所有的文件都有以下标题,它们可以追溯到几年前。我希望能够读取每个文件,然后将文件名中的日期添加为一列

截至2015-04-01.csv的文件类型

path = 'C:\\Users\\'  
filelist = os.listdir(path)     #All of my .csv files I am working with
file_count = len(filelist)      #I thought I could do a for loop and use this as a the range
df = Series(filelist)           #I just added this because I couldn't get the date from a list
date_name = df.str[15:-4]       #This gives me the date 
所以我尝试的是:

for file in filelist:
    df = pd.read_csv(file)
现在,我想从文件名中获取date\u名称,并添加一个名为date的列。每个文件都是完全相同的,但我想跟踪随时间的变化,唯一的日期是在文件名上找到的

然后我将附加它

path = 'C:\\Users\\'
filelist = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list = []
for file in filelist:
    df = pd.read_csv(file)
    list_.append(df)
frame = pd.concat(list)
如何将日期名称添加到文件/数据框?1) 读取文件,2)根据文件名添加日期列,3)读取下一个文件,4)添加日期列,5)追加,6)对路径中的所有文件重复

编辑--- 我想我有事情要做-这是最好的方式吗?有人能解释一下list=[]在做什么吗

path = 'C:\\Users\\'
filelist = os.listdir(path) 
list = []
frame = pd.DataFrame()
for file in filelist:
    df2 = pd.read_csv(path+file)
    date_name = file[15:-4]
    df2['Date'] = date_name
    list.append(df2)
frame = pd.concat(list)

这似乎是一个合理的方法。
pd.concat
获取pandas对象的列表并将它们连接起来<代码>附加在循环文件时将每个
添加到列表中。不过,我认为有两件事需要改变

  • 您不需要
    frame=pd.DataFrame()
    。当您将数据帧添加到列表中时,它没有执行任何操作
  • 我要将变量
    list
    的名称更改为其他名称。可能是
    框架
    ,因为它是对内容的描述,并不意味着什么
    是的,事实上,-plus“list”是一个python关键字。此外,我不喜欢文件名[15:-4]的想法,相反,filename.split('.')[0]更便于移植-如果出于任何原因,命名csv的约定发生了变化(或者一些csv采用旧约定,而一些csv采用新约定)。文件名为“XYZ截止2015-05-30.csv”。我正在抓取日期,然后在文件中用该日期列一列。列表=[]做什么?它创建一个空列表,就像
    frames=[]
    一样,具体地说,它将一个空列表分配给变量名HI在您的
    编辑中
    文件[15:-4]
    的作用是什么?这是一个非常古老的问题,但它只是从文件名中抓取了日期。比如,文件名是something-2020-01-01.xlsx,它只是从该名称中提取日期部分。这正是我希望对csv文件所做的。除了我的csv文件名为1月3日的
    01\u 03
    。。。有什么地方我可以读到你是如何做到这一点的吗?事实上,通过反复试验,我发现我需要
    文件[1:-4]
    谢谢你的帖子!