求助:优化拆分52000行.xlsx为11份的Python代码(消除空白文件)
Excel大文件拆分:解决多余空白文件问题
问题根源
你代码里的循环范围完全错了:for i in range(n_partitions)让循环执行了5000次,但你的原数据只有52000行,第11次循环之后的所有切片都会得到空的DataFrame,这些空数据导出就变成了49996个空白Excel文件。
修正后的代码
import pandas as pd # 读取原始Excel文件,路径前加r避免转义字符问题 df = pd.read_excel(r"C:\Users\rajat.kapoor\Desktop\All Data Combined\Credit Check Data.xlsx") # 每个拆分文件的行数 rows_per_file = 5000 # 计算需要拆分的总文件数(向上取整,确保包含剩余的2000行) total_files = (len(df) + rows_per_file - 1) // rows_per_file # 循环生成每个拆分文件 for i in range(total_files): # 计算当前文件的行范围 start_row = i * rows_per_file end_row = start_row + rows_per_file # 截取对应行的数据 sub_df = df.iloc[start_row:end_row] # 导出到新Excel,index=False可以去掉默认的索引列(可选) sub_df.to_excel( fr"C:\Users\rajat.kapoor\Desktop\All Data Combined\Credit Check Data - {i}.xlsx", sheet_name="a", index=False )
关键改动说明
- 循环次数修正:用
total_files控制循环次数,这里会自动计算出11次,刚好覆盖所有数据,不会产生多余循环。 - 路径处理:路径字符串前加
r(原始字符串标记),避免\被解析为转义字符导致路径错误。 - 可选优化:
index=False可以防止导出的Excel里多出一列默认的数字索引,如果你需要保留索引可以删掉这个参数。
内容的提问来源于stack exchange,提问作者RajatKapoor350
相关产品推荐
相关产品推荐

