我需要在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()
选项,如果你可以将它们导出到一个文件与多个表,而不是有多个文件。