Python批量左右合并多个Excel表格为新表

img

img


第一个图excel是以月份命名的,这样的表有很多个,格式相同,我想把所有的表格用python批量处理成图二的样子,就是以序号为索引列,以月份为每列名称,拿出最高温度这一列合并为新表,merge好像只能合并两个,不能批量解决

你可以使用以下代码来实现将多个以月份命名的Excel文件中的最高温度列合并为一个新表:

import pandas as pd
import os

# 获取当前目录下的所有Excel文件名
all_files = os.listdir('.')
excel_files = [file for file in all_files if file.endswith('.xlsx') or file.endswith('.xls')]

# 初始化一个空的DataFrame,用于存储合并后的数据
merged_df = pd.DataFrame()

# 遍历Excel文件
for file in excel_files:
    # 获取月份作为新列的名称,假设文件名为 "2023-01.xlsx",并且最高温度列名为 "最高温度"
    month = file.split('.')[0]
    
    # 读取Excel文件
    temp_df = pd.read_excel(file)

    # 设置序号列为索引
    temp_df.set_index('序号', inplace=True)
    
    # 提取最高温度列,并重命名为对应的月份
    temp_df = temp_df[['最高温度']].rename(columns={'最高温度': month})

    # 合并数据
    if merged_df.empty:
        merged_df = temp_df
    else:
        merged_df = merged_df.join(temp_df)

# 将合并后的数据写入新的Excel文件
merged_df.to_excel('merged_file.xlsx')

这段代码将当前目录下的所有以月份命名的Excel文件中的最高温度列合并为一个新表,以序号为索引列,以月份为每列名称。合并后的数据将被写入一个名为merged_file.xlsx的新Excel文件。请确保你的工作目录中只包含需要合并的Excel文件,否则你可能需要适当调整代码以筛选出正确的文件。