Python 循环浏览目录中的文件,在目录中添加日期列
我所有的文件都有以下标题,它们可以追溯到几年前。我希望能够读取每个文件,然后将文件名中的日期添加为一列 截至2015-04-01.csv的文件类型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
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]
谢谢你的帖子!