循环遍历目录中的文件,在 pandas 中添加日期列

2024-03-18

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

截至 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_name 并添加一个名为 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)

如何将 date_name 添加到文件/数据框? 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 对象列表并将它们连接起来。append添加每个frame当您循环浏览文件时到列表中。不过,我认为有两件事需要改变。

  1. 你不需要frame = pd.DataFrame()。当您附加时它没有做任何事情dataframes到列表中。
  2. 我会更改变量的名称list到别的东西。或许frames因为它是对内容的描述,并不意味着什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环遍历目录中的文件,在 pandas 中添加日期列 的相关文章

随机推荐