有没有一种更快的方式来写入或读取/读取大约一百万行的熊猫数据帧

时间:2018-07-12 12:02:31

标签: python pandas dataframe machine-learning spyder

我正在尝试对我的问题进行具体说明。我有一个包含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数据帧更快地读写文件,因为这只是一个文件示例。我还有很多这样的文件

3 个答案:

答案 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笔记本电脑需要一分钟。