You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python Pandas拆分38000行Excel为每1000行文件的实现方案

修改后的Python脚本(实现Excel按行拆分+DeepL翻译)

下面是调整后的脚本,既能完成DeepL翻译,又能按每1000行拆分生成独立Excel文件:

import pandas as pd
import os
import deepl

# 工作目录和输出目录(可根据实际修改)
WORK_DIR = r'C:\Users\Admin\XXX'
OUTPUT_DIR = r'C:\Users\Admin\拆分结果'

# 创建输出目录,不存在则自动生成
os.makedirs(OUTPUT_DIR, exist_ok=True)

# DeepL授权密钥
AUTH_KEY = 'XX'
translator = deepl.Translator(AUTH_KEY)

# 遍历目录下的Excel文件
for file_name in os.listdir(WORK_DIR):
    if file_name.endswith('.xlsx'):
        file_path = os.path.join(WORK_DIR, file_name)
        print(f"正在处理文件: {file_name}")
        
        # 获取所有sheet名并逐个处理
        sheet_names = pd.ExcelFile(file_path).sheet_names
        for sheet_name in sheet_names:
            print(f"  正在处理sheet: {sheet_name}")
            
            # 读取当前sheet的数据
            df = pd.read_excel(file_path, sheet_name=sheet_name)
            
            # 预处理:将布尔值True/False转为空字符串,保留原非布尔值
            for col in df.columns:
                df[col] = df[col].map({True: '', False: ''}).fillna(df[col])
            
            # 翻译指定列(替换为你需要翻译的列名)
            translate_col = 'COLUMN TO TRANSLATE'
            df['TRANSLATE'] = df[translate_col].apply(
                lambda x: translator.translate_text(x, target_lang="CS") if isinstance(x, str) else x
            )
            
            # 只保留需要的列(原翻译列+新生成的翻译结果列)
            df = df.reindex(columns=[translate_col, 'TRANSLATE'])
            
            # 按每1000行拆分数据
            chunk_size = 1000
            total_chunks = len(df) // chunk_size + (1 if len(df) % chunk_size != 0 else 0)
            
            for i in range(total_chunks):
                start_idx = i * chunk_size
                end_idx = min((i+1)*chunk_size, len(df))
                chunk_df = df.iloc[start_idx:end_idx]
                
                # 生成拆分后的文件名:原文件名_sheet名_拆分序号.xlsx
                output_file_name = f"{os.path.splitext(file_name)[0]}_{sheet_name}_拆分{i+1}.xlsx"
                output_file_path = os.path.join(OUTPUT_DIR, output_file_name)
                
                # 保存为Excel文件,不包含索引
                chunk_df.to_excel(output_file_path, index=False)
                print(f"    已生成文件: {output_file_name}")

print("所有文件处理完成!")

关键修改说明:

  • 路径优化:将硬编码的路径改为变量,新增输出目录自动创建逻辑,避免手动创建文件夹
  • Sheet处理修复:读取Excel时指定具体sheet名,原脚本未指定导致重复读取第一个sheet
  • 拆分逻辑实现:通过iloc切片按1000行分割DataFrame,自动计算拆分数量,生成带序号的文件名
  • 翻译逻辑优化:提前初始化DeepL翻译器,避免循环中重复创建实例,提升效率
  • 输出规范:拆分后的文件名包含原文件名、sheet名和拆分序号,方便区分

内容的提问来源于stack exchange,提问作者HEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:50:41