Pandas导出Excel遇ValueError:数据行数过多(1250619行)如何解决?
解决Pandas保存超大数据到Excel的ValueError问题
你的报错根源是:常规的.xlsx单个工作表最大支持1048576行,而你的统计结果有1250619行,超出了格式上限。以下是可行的解决办法:
方案1:拆分数据到多个工作表
把统计结果拆分到多个工作表,每个工作表不超过1048576行,写入同一个Excel文件:
import os import pandas as pd # 读取并合并CSV(修正原代码的路径与过滤问题) csv_dir = 'path to csv files' files_list = [f for f in os.listdir(csv_dir) if f.endswith('.csv')] df_list = [pd.read_csv(os.path.join(csv_dir, f), sep=';') for f in files_list] big_df = pd.concat(df_list) # 分组统计(修正gropuby拼写错误为groupby) x = big_df.groupby(['columnnames']).size().sort_values(ascending=False).reset_index(name='Count') # 拆分数据并写入多工作表 max_rows_per_sheet = 1048576 total_sheets = (len(x) // max_rows_per_sheet) + 1 with pd.ExcelWriter('filename.xlsx', engine='xlsxwriter') as writer: for sheet_idx in range(total_sheets): start = sheet_idx * max_rows_per_sheet end = start + max_rows_per_sheet sheet_name = f'统计结果_{sheet_idx+1}' x.iloc[start:end].to_excel(writer, sheet_name=sheet_name, index=False)
方案2:保存为CSV格式(无行数限制)
如果不需要Excel格式,直接保存为CSV更简单,且没有行数上限:
x.to_csv('统计结果.csv', sep=';', index=False)
额外提示
原代码有两处拼写错误需要修正:
gropuby→groupbypd.excelwriter→pd.ExcelWriter
内容的提问来源于stack exchange,提问作者Dappergemini
相关产品推荐
相关产品推荐

