我正在尝试对我的问题进行具体说明。我有一个包含200多个列和100万以上行的数据框。我正在将其读取或写入到excel文件中,如果我没记错的话,则需要45分钟以上。
df = pd.read_csv("data_file.csv", low_memory=False, header=0, delimiter = ',', na_values = ('', 'nan'))
df.to_excel('data_file.xlsx', header=0, index=False)
我的问题-无论如何,我们可以使用pandas数据帧更快地读写文件,因为这只是一个文件示例。我还有很多这样的文件
答案 0 :(得分:2)
两个想法:
调查Dask,它提供了像DataFrame
这样的熊猫,它可以在多个CPU或群集中分配大型数据集的处理。很难说,如果您的性能纯粹是IO约束的,您将在多大程度上加快速度,但是当然值得研究。快速浏览Dask use cases,以了解其功能。
如果您要重复读取相同的CSV输入文件,则建议将它们转换为HDF,因为读取HDF比读取等效的CSV文件快几个数量级。就像将文件读入DataFrame
然后使用DataFrame.to_hdf().
写回文件一样简单。显然,这仅在您可以一次完成一次转换后再使用HDF文件时才有用。每当您运行代码时,该指向前进。
关于, 伊恩
答案 1 :(得分:0)
这是您正在使用的大文件。如果您需要处理数据,那么您将无法避免漫长的读写时间。
答案 2 :(得分:0)
请勿写入xlsx,请使用csv,写入xlsx会花费很长时间。 写入csv。我的廉价SSD笔记本电脑需要一分钟。