将多个excel文件中的特定数据汇总到一个excel中

比如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为空)': [],
        '流通市值(万元)': [],
        '振幅': []
    }
    
    #根据上面的列名创建一个空的excel
    df = 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)

你可能感兴趣的:(python数据处理,python,人工智能,数据挖掘)