[英]Performance difference in pandas read_table vs. read_csv vs. from_csv vs. read_excel?
我倾向于将.csv文件导入到pandas中,但有时我可能会获得其他格式的数据来制作DataFrame
对象。
今天,我刚刚发现read_table
是其他格式的“通用”导入器,并且想知道在pandas中用于读取.csv文件的各种方法之间是否存在显着的性能差异,例如read_table
, from_csv
, read_excel
。
read_csv
? read_csv
远远不同from_csv
创建一个DataFrame
? read_table
是read_csv
, sep=','
替换为sep='\\t'
,它们是围绕同一函数的两个瘦包装器,因此性能将是相同的。 read_excel
使用xlrd
包将xls和xlsx文件读入DataFrame,它不处理csv文件。 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.