我的所有文件都具有以下标题,并且它们可以追溯到几年前。我希望能够读取每个文件,然后将文件名中的日期添加为一列。
截至 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
当您循环浏览文件时到列表中。不过,我认为有两件事需要改变。
- 你不需要
frame = pd.DataFrame()
。当您附加时它没有做任何事情dataframes
到列表中。
- 我会更改变量的名称
list
到别的东西。或许frames
因为它是对内容的描述,并不意味着什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)