比如5000个excel文件中都有1月2日的交易数据。现在需要将每个文件中1月2日的数据提出来,组成一个新的excel文件,即1月2日的交易数据文件,以1月2日命名。下面的程序是将5000只股票1月2日的交易数据提出来,形成一个1月2日所有股票的交易数据快照。import pandas as pd import os# 这个文件是存入新的excel文件的日期文件 file1 = 'D:\\tmp_financial\DailyK\TEST\date.xlsx' df1 = pd.read_excel(file1)# 定义目标文件夹路径 source = "D:\\tmp_financial\DailyK\standard_dailyK"#5000只excel文件目录 des = "D:\\tmp_financial\DailyK\standard_camera"#将要存入的文件目录 file_extension = ".xlsx"#写入的文件类型是excel# 循环遍历文件1的所有行 for index, row in df1.iterrows():#一行一行的读取# 获取交易时间date = row['交易时间']#创建一个空的excel,列名先固定下来,用来存快照数据columns = {'证券代码': [],'交易时间': [],'开盘价': [],'最高价': [],'最低价': [],'收盘价': [],'前收盘价': [],'涨跌幅': [],'5日涨跌幅': [],'10日涨跌幅': [],'20日涨跌幅': [],'60日涨跌幅': [],'成交量(手)': [],'量比': [],'换手率(%)': [],'市盈率(TTM,亏损的PE为空)': [],'流通市值(万元)': [],'振幅': []}#根据上面的列名创建一个空的exceldf = pd.DataFrame(columns)#根据日期和之前设定的路径,生成最后存入的文件名称和路径des_file = os.path.join(des, date + file_extension)for filename in os.listdir(source):if filename.endswith('.xlsx'): # 检查是否为 Excel 文件#打开对应文件file_path = os.path.join(source, filename)df3 = pd.read_excel(file_path)# 找对应excel文件中日期匹配的那一行filtered_df = df3[df3['交易时间'] == date]if not filtered_df.empty:df = df.append(filtered_df, ignore_index=True)#写入前面创建的excel文件中else:print("没有找到符合条件的行")#修改对应的文件列名顺序col_names = df.columns.tolist()print("乱序", df.columns)col_names = [col_names[16], col_names[4], col_names[7], col_names[13], col_names[12], col_names[11],col_names[5],col_names[15], col_names[2], col_names[0], col_names[1], col_names[3], col_names[8],col_names[17], col_names[10], col_names[6], col_names[14], col_names[9]]df = df.reindex(columns=col_names)print("修正", df.columns)df.to_excel(des_file, index=False)