我倾向于将.csv文件导入到pandas中,但有时我可能会获得其他格式的数据来制作DataFrame
个对象。
今天,我刚刚发现了read_table
作为"泛型"其他格式的导入器,并想知道在pandas中用于读取.csv文件的各种方法之间是否存在显着的性能差异,例如: read_table
,from_csv
,read_excel
。
read_csv
? read_csv
时from_csv
与DataFrame
有很大差异吗?答案 0 :(得分:24)
read_table
为read_csv
,sep=','
替换为sep='\t'
,它们是围绕同一功能的两个薄包装器,因此性能将相同。 read_excel
使用xlrd
包将xls和xlsx文件读入DataFrame,它不会处理csv文件。from_csv
来电read_table
,所以没有。答案 1 :(得分: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)
写入.xlsx df.to_excel('bar.xlsx', sheet_name='Sheet1', index=False)
要将数据框写入制表符分隔的文本文件,您可以使用:
df.to_csv('bar.txt', sep='\t', index=False)