复制.csv文件的一半行并保存为.xlsx(在Python, Pandas或其他模块中)



我需要在Python中将。csv文件转换为。xlsx文件,文件大小为446mb,但如果我使用下一个代码:

import pandas as pd
read_file = pd.read_csv(r'D:НазарБізнесРеалізаціяExternal_trade_data_01.2021-12.2021_UK.csv')
read_file.to_excel(r'D:НазарБізнесРеалізаціяtest.xlsx', index=None, header=True)

结果是:

ValueError: This sheet is too large! Your sheet size is: 2 006 894, 28 Max sheet size is: 1 048 576, 16384

我如何复制头和。csv文件的前1 003 447行并保存在。xlsx文件中(或csv,然后我将整个文件转换为。xlsx),然后复制下一个。csv文件的1 003 447行并保存到另一个。xlsx文件。

谢谢!

size_file = read_file.shape[0]
read_file1 = read_file.iloc[:int(size_file/2), :]
read_file2 = read_file.iloc[int(size_file/2):, :]
read_file1.to_excel(r'D:НазарБізнесРеалізаціяtest1.xlsx', index=None, header=True)
read_file2.to_excel(r'D:НазарБізнесРеалізаціяtest2.xlsx', index=None, header=True)

您可以使用pandas将csv数据框拆分为多个较小的数据框(例如500,000行的块)。然后,您可以使用to_excel来转换它们。

chunksize = 500000
source_path = r'D:НазарБізнесРеалізаціяExternal_trade_data_01.2021-12.2021_UK.csv'
for i,chunk in enumerate(pd.read_csv(source_path, chunksize=500000, dtype=dtypes)):
chunk.to_excel('split_csv/chunk{}.xls'.format(i), index=None, header=True)

你也可以检查to_excel()选项,如果你可以将它们导出到一个文件与多个表,而不是有多个文件。

相关内容

  • 没有找到相关文章

最新更新