代码如下:

# -*- coding:utf-8 -*-
# @author:Ye Zhoubing
# @datetime:2025/8/1 10:24
# @software: PyCharm
# -*- coding:utf-8 -*-
# @author:Ye Zhoubing
# @datetime:2025/2/19 10:26
# @software: PyCharm
"""
按小时匹配两个 CSV 文件中的数据,并将结果保存为新的 Excel 文件。
"""
import pandas as pd
import osfolder_path = r'C:\Users\32649\Desktop\excel\water-discharge\csv'   # 请在此处填写文件夹路径,例如 r'C:\Users\32649\Desktop\太浦河流量水位预测\lstm_target\5-20'
# 获取文件夹内的所有文件名
file_names = os.listdir(folder_path)# 遍历文件夹内的所有文件
for  file_name in enumerate(file_names):# 读取两个文件df1 = pd.read_csv(r'C:\Users\32649\Desktop\太浦河流量水位预测\lstm_target\5-20\train_2014.csv')  # 包含日期列df2 = pd.read_csv(r'C:\Users\32649\Desktop\excel\water-discharge\csv\{}'.format(file_name[1]), encoding="gbk")  # 包含完整数据# 将日期列转为 datetime 类型df1['date'] = pd.to_datetime(df1['date'])df2['时间'] = pd.to_datetime(df2['时间'])# 提取精确到小时的时间(去掉分钟秒)df1['date_hour'] = df1['date'].dt.floor('h')df2['date_hour'] = df2['时间'].dt.floor('h')# 获取 df1 中所有的唯一“小时”时间hour_list = df1['date_hour'].unique()# 在 df2 中筛选与 df1 中相同“小时”的数据matched_df = df2[df2['date_hour'].isin(hour_list)]# 保存结果为新 Excel 文件matched_df.to_excel(f'{file_name[1]}'.replace('.csv','xlsx'), index=False)print(f"匹配完成,已按小时保存结果为{file_name[1]}.replace('.csv','xlsx')")