我试图创建一个函数,将连接文件追溯到一定数量的完整年份,还包括今年的文件。我所有的文件都命名为相同的,除了年底的年份(例如Data2010,Data2011…Data2018)
现在我已经设置好将所有文件拉入一个数据帧,但是我不知道如何编写基于当前年份和我提供的数字只拉入特定年份的函数
*编辑:是否可以编写函数,以便在不随年份变化而对文件进行编辑的情况下始终工作?那么函数将通过datetime或其他方式读取当前年份,并知道最后5年是什么
import pandas as pd
import datetime
import os
import glob
qms = os.path.join('X:', 'JY', 'Analyst', 'Data')
today = datetime.datetime.today()
#Pulling all files and concatenating, needs to pull only last 5 + current
warranty_files = glob.glob(os.path.join(qms, '*.csv'))
warranty_list = []
for file_ in warranty_files:
df = pd.read_csv(file_,index_col=None, header=0)
warranty_list.append(df)
warranty = pd.concat(warranty_list)
# def get_warranty(years): #want this to be the start of function
如果您需要进行特定的选择,
glob
也允许您这样做我制作了一个包含3个文本文件的文件夹,标签为
Data2010, Data2011, Data2013
,我可以选择2010年之后的所有文件,如下所示:换句话说,您应该能够使用
regex
进一步自定义文件选择。一旦选择了正确数量的文件,就可以将它们连接成pd.DataFrame
在我上面的例子中,抓住当前和过去五年是这样的,
"Data201[3-8].txt"
。如果文件名的该部分前面有一些文本,请添加星号*
:"*Data201[3-8].txt"
。如果有不清楚的地方请告诉我编辑:OP要求根据当前年份自动选择他们的文件。这里有一个方法可以做到这一点。试一试
相关问题 更多 >
编程相关推荐