我有一个140MB的Excel文件,我需要使用pandas进行分析。问题是,如果我打开这个文件作为xlsx,只需要阅读它就需要5分钟的python。我试图手动将此文件保存为csv然后需要Python大约一秒钟才能打开并阅读它!有不同的2012-2014解决方案,为什么Python 3不能真正起作用。
有人可以建议如何快速转换文件'C:\master_file.xlsx'
到'C:\master_file.csv'
?
有一个项目旨在处理称为“行”的数据时非常pythonic。不过,它依赖于xlsx的“openpyxl”。我不知道这是否会比熊猫更快,但无论如何:
$ pip install rows openpyxl
和:
import rows
data = rows.import_from_xlsx("my_file.xlsx")
rows.export_to_csv(data, open("my_file.csv", "wb"))
流行的最快方式:
作为额外的好处,您可以在将数据保存到csv之前清理数据。
import pandas as pd
df = pd.read_excel('C:\master_file.xlsx', header=0) #, sheetname='<your sheet>'
df.to_csv('C:\master_file.csv', index=False, quotechar="'")
在某些时候,处理大量数据将花费大量时间。只是生活中的一个事实。不过,如果这是一个问题,很高兴找到选项。
在openpyxl中使用只读模式。像下面这样的东西应该工作。
import csv
import openpyxl
wb = load_workbook("myfile.xlsx", read_only=True)
ws = wb['sheetname']
with open("myfile.csv", "wb") as out:
writer = csv.writer(out)
for row in ws:
values = (cell.value for cell in row)
writer.writerow(values)
我遇到了和你一样的问题。熊猫和openpyxl对我不起作用。
我遇到了这个解决方案,对我来说很有用:
import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.DisplayAlerts = False
xl.Workbooks.Open(Filename=your_file_path,ReadOnly=1)
wb = xl.Workbooks(1)
wb.SaveAs(Filename='new_file.csv', FileFormat='6') #6 means csv
wb.Close(False)
xl.Application.Quit()
wb=None
xl=None
在这里,您可以通过Excel将文件转换为csv。我尝试的所有其他方式拒绝工作。