pandas read_table与read_csv与from_csv与read_excel的性能差异?

pyl*_*ang 12 python csv performance dataframe pandas

我倾向于将.csv文件导入到pandas中,但有时我可能会获得其他格式的数据来制作DataFrame对象.

今天,我只是发现了有关read_table为其他格式的"通用"的进口商,并想知道是否有在大熊猫的各种方法之间显著的性能差异阅读的.csv文件,例如read_table,from_csv,read_excel.

  1. 这些其他方法的性能是否优于read_csv
  2. read_csv远远不同的from_csv创建DataFrame

小智 26

  1. read_tableread_csvsep=','替换sep='\t',它们围绕着相同功能的两个薄包装纸因此性能将是相同的. read_excel使用xlrd包将xls和xlsx文件读入DataFrame,它不处理csv文件.
  2. from_csv电话read_table,所以不.


gri*_*inc 6

我发现CSV和制表符分隔的文本(.txt)在读写速度上是等价的,两者都比读取和写入MS Excel文件快得多.但是,Excel格式会大量压缩文件大小.


对于相同的320 MB CSV文件(16 MB .xlsx)(i7-7700k,SSD,运行Anaconda Python 3.5.3,Pandas 0.19.2)

使用标准惯例 import pandas as pd

2秒读取.csv df = pd.read_csv('foo.csv')(pd.read_table相同)

15.3秒读取.xlsx df = pd.read_excel('foo.xlsx')

10.5秒写.csv df.to_csv('bar.csv', index=False) (相同的.txt)

34.5秒写.xlsx df.to_excel('bar.xlsx', sheet_name='Sheet1', index=False)


要将数据帧写入制表符分隔的文本文件,您可以使用:

df.to_csv('bar.txt', sep='\t', index=False)

  • 仅供参考,`to_csv` 有一个 `compression` 参数,因此您可以写出压缩文件。请参阅 [to_csv](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html) 文档。不知道这里的压缩与 Excel 的格式相比有多好。 (2认同)