Excel sheet 数据随机平均分裂sheet_x

85 阅读1分钟

python实现数据分裂sheet

import pandas as pd

# 读取原始数据
file_path = 'C:\Users\pc\Desktop\record.xlsx'
output_path = 'C:\Users\pc\Desktop\distributed_data.xlsx'
sheet_name = '1000'  # 假设数据在第一个 sheet 中

df = pd.read_excel(file_path, sheet_name=sheet_name, engine='openpyxl')

# 随机化数据
df_shuffled = df.sample(frac=1, random_state=42)  # 使用固定的随机种子以便复现

# 设置要创建的 sheet 数量
num_sheets = 3  # 假设要创建3个 sheet

# 计算每个 sheet 中的数据量
total_rows = len(df_shuffled)
rows_per_sheet = total_rows // num_sheets
remainder = total_rows % num_sheets

# 创建一个新的 Excel 文件
writer = pd.ExcelWriter(output_path, engine='openpyxl')
df_shuffled.to_excel(writer, sheet_name='Original', index=False)  # 在新文件中保留原始数据

# 分配数据到每个 sheet
start_row = 0
for sheet_index in range(num_sheets):
    end_row = start_row + rows_per_sheet
    if sheet_index < remainder:
        end_row += 1  # 处理余数,确保每个 sheet 中的数据量均匀分配
    df_shuffled.iloc[start_row:end_row].to_excel(writer, sheet_name=f'Sheet_{sheet_index + 1}', index=False)
    start_row = end_row

writer.save()