使用date作为输出文件中的索引

我有几个不同的date文件的Excel文件。 我必须连接所有这些文件的文件名date作为索引列。 我写下面的代码如下:

path = r"C:\\Users\\atcs\\Desktop\\data science\\files\\1-Danny Jones KPI's\\Source\\" fileName = glob.glob(os.path.join(path, "*.xlsx")) df = (pd.read_excel(f, header=None, sheetname = "YTD Summary_4") for f in fileName) k = (re.search("([0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4})", fileName)) concatenated_df = pd.concat(df, index=k) concatenated_df.to_csv('tableau7.csv') 

我在这里所做的是首先定义一个目录,然后将所有包含xlsx文件的文件分配给文件名。 我在一个datadrame中定义了文件名,使用正则expression式从文件名获得date并将其分配给variablesk。 现在我连接文件来获得输出CSV文件。 但代码以某种方式给出了一个错误: TypeError:预期的string或类似字节的对象 。 有人能帮助我,我做错了什么。

您可以使用:

 #simplify for add *.xlsx to path path = r"C:\\Users\\atcs\\Desktop\\data science\\files\\1-Danny Jones KPI's\\Source\\*.xlsx" fileName = glob.glob(path) #create list of DataFrames dfs dfs = [pd.read_excel(f, header=None, sheetname = "YTD Summary_4") for f in fileName] #add parameter keys for filenames, remove second level of multiindex concatenated_df = pd.concat(dfs, keys=fileName).reset_index(level=1, drop=True) #extract dates and convert to DatetimeIndex pat = '([0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4})' concatenated_df.index = pd.to_datetime(concatenated_df.index.str.extract(pat, expand=False)) print (concatenated_df) 

有点国防部,

 path = r"C:\\Users\\atcs\\Desktop\\data science\\files\\1-Danny Jones KPI's\\Source\\*.xlsx" fileName = glob.glob(path) l = [] for f in fileName: df = pd.read_excel(f, header=None, sheetname = "YTD Summary_4") df['date'] = f l.append(df) concatenated_df = pd.concat(l).set_index('date') concatenated_df.to_csv('tableau7.csv')