标题:Python脚本:将Excel文件拆分成多个工作表

发布时间 2023-12-18 15:32:37作者: 不上火星不改名

简介:

本博客介绍了一个实用的Python脚本,旨在帮助用户处理和重塑Excel数据。这个脚本允许用户将一个包含多列数据的Excel文件拆分成多个新的Excel文件,每个文件包含10列数据。特别适用于需要将大型数据集分解为更小、更易管理的部分的场合。

功能特点:

  1. 用户友好的交互:脚本通过命令行界面运行,用户可以轻松输入源Excel文件的路径。
  2. 灵活的数据处理:原始Excel文件中的每两列被视为一个单元,这些单元被转换成新的Excel文件中的10列格式。
  3. 自动化和效率:程序自动处理整个Excel文件,为每个数据单元生成一个新文件,大大节省了手动操作的时间和努力。
  4. 原地保存:新生成的Excel文件保存在原文件所在的同一目录中,便于组织和访问。
  5. 简单易懂的代码:使用了Python中的pandasopenpyxl库,代码结构清晰,易于理解和修改。

应用场景:

  • 数据分析师和研究人员,他们需要将大型数据集分割为更小的部分进行详细分析。
  • 任何需要快速转换和重组Excel数据的业务或教育场景。
  • 用于数据清理和准备的初级阶段,特别是在处理大量的数据列时。
import pandas as pd
import os

def split_excel(file_path):
    # 读取Excel文件,忽略第一行
    df = pd.read_excel(file_path, header=1)
    
    # 获取文件所在目录和文件名前缀
    dir_name = os.path.dirname(file_path)
    file_prefix = os.path.splitext(os.path.basename(file_path))[0]

    # 每两列处理一次
    for i in range(0, df.shape[1], 2):
        # 获取当前单元的两列
        unit_df = df.iloc[:, i:i+2]
        
        # 重塑数据为10列
        reshaped_data = []
        for row in unit_df.itertuples(index=False):
            reshaped_data.extend(row)

        # 将数据分为10列
        reshaped_df = pd.DataFrame([reshaped_data[i:i+10] for i in range(0, len(reshaped_data), 10)])
        
        # 保存新的Excel文件
        new_file_name = f"{file_prefix}_新表格{i//2 + 1}.xlsx"
        reshaped_df.to_excel(os.path.join(dir_name, new_file_name), index=False)

    return "处理完成"

# 用户输入文件地址
file_path = input("请输入Excel文件的路径: ")
print(split_excel(file_path))