第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > r语言读取csv文件赋值gamma_tidyfst vs pandas(1):csv文件读写

r语言读取csv文件赋值gamma_tidyfst vs pandas(1):csv文件读写

时间:2024-08-20 08:42:21

相关推荐

r语言读取csv文件赋值gamma_tidyfst vs pandas(1):csv文件读写

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言高效数据处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@.欢迎合作交流。

在tidyfst中,csv文件的读写依赖于data.table直接提供的fread函数,而pandas中则是利用了其自带的read_csv函数。现在比较一下两者对于项目/yeayee/joyful-pandas中data文件夹下UFO.csv(3.8M)的运行时间(各运行100次取平均值)。

Python代码:

import timeit as timeitcode_to_test = """import pandas as pddf = pd.read_csv("data/UFO.csv")"""elapsed_time = timeit.timeit(code_to_test, number=100)/100print(elapsed_time)

每次运行约花销0.078s。

R代码(观察mean这一项):

library(tidyfst)res = microbenchmark::microbenchmark({library(tidyfst)fread("data/UFO.csv")} ,times = 100,unit = "s")

每次运行约花销0.020s。

结论:就数据导入而言,pandas速度不及tidyfst,data.table比较厉害。如果数据量级变大,这个差距可能会更加明显。

由于测试的时候是另外创建环境,因此加载包的时间也要算进去。但是其实它们是微不足道的,我们可以进行一个小的补充测试(分别注释掉文件读取的代码):

Python:

R:

我们比较的量级在1e-3左右,而加载包的时间量级在1e-5甚至更小。

吐槽:Python的帮助文档真的是一般,找一个测时间的函数找了半天也没有找到比较好的,R中无论bench包还是microbenchmark包都远远超越于此。如果有朋友知道python中更好的测时间的方法,敬请告知。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。