繁体   English   中英

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

[英]Performance difference in pandas read_table vs. read_csv vs. from_csv vs. read_excel?

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

今天,我刚刚发现read_table是其他格式的“通用”导入器,并且想知道在pandas中用于读取.csv文件的各种方法之间是否存在显着的性能差异,例如read_tablefrom_csvread_excel

  1. 这些其他方法的性能是否优于read_csv
  2. read_csv远远不同from_csv创建一个DataFrame
  1. read_tableread_csvsep=','替换为sep='\\t' ,它们是围绕同一函数的两个瘦包装器,因此性能将是相同的。 read_excel使用xlrd包将xls和xlsx文件读入DataFrame,它不处理csv文件。
  2. from_csv调用read_table ,所以没有。

我发现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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM