当前位置: 首页 > 面试题库 >

Pandas加载CSV的速度比SQL快

傅长恨
2023-03-14
问题内容

从CSV加载数据似乎比从Pandas的SQL(Postgre SQL)加载数据要快。(我有一个固态硬盘)

这是我的测试代码:

import pandas as pd
import numpy as np

start = time.time()
df = pd.read_csv('foo.csv')
df *= 3
duration = time.time() - start
print('{0}s'.format(duration))

engine = create_engine('postgresql://user:password@host:port/schema')
start = time.time()
df = pd.read_sql_query("select * from mytable", engine)
df *= 3
duration = time.time() - start
print('{0}s'.format(duration))

foo.csv和数据库是相同的(两个列中的数据和列数相同,4列,100000行充满随机int)。

CSV需要0.05秒

SQL花费0.5秒

您认为CSV比SQL快10倍是正常的吗?我想知道我是否在这里错过了什么…


问题答案:

这是正常现象,读取csv文件始终是简单加载数据的最快方法之一

CSV非常幼稚且简单。直接从中加载将非常快。对于具有复杂结构的海量数据库,不能选择CSV。SQL从表中选择数据并将数据返回给您的速度非常快。自然,如果您可以选择,修改和处理数据,则将增加通话的间接费用。

想象一下,您有一个从1920年到2017年的csv中的时间序列,而您只想要从2010年到今天的数据。

csv方法 是加载整个csv,然后选择2010年到2017年。

SQL方法 是通过SQL选择功能预选年份

在这种情况下,SQL将更快。



 类似资料:
  • 问题内容: 我有一个719mb的CSV文件,看起来像: 我想加载到熊猫DataFrame中。现在我知道csv方法有负载: 但我特别想将其加载为“ MultiIndex” DataFrame,其中from和to是索引: 所以最后以: 等等。我不确定该怎么做? 问题答案: 您可以使用: 我曾经摆脱标题行中那些烦人的空格的地方。

  • 比赛速度功能有助于您保持稳定配速,并在设定距离内达到您的目标时间。定义某段距离的目标时间 - 例如将 10 公里跑步的目标时间设定为 45 分钟,并跟踪对比实际用时与这个预设目标的差距。 您可以在手表上设置比赛速度,或者可以在 Flow 网络服务或应用程序中设置比赛速度目标,并同步至手表。 如果您已计划好当天的比赛速度目标,手表会在进入训练准备模式时建议您启动该目标。 在手表上创建比赛速度目标 您

  • 比赛速度功能有助于您保持稳定配速,并在设定距离内达到您的目标时间。定义某段距离的目标时间 - 例如将 10 公里跑步的目标时间设定为 45 分钟,并跟踪对比实际用时与这个预设目标的差距。 您可以在手表上设置比赛速度,或者可以在 Flow 网络服务或应用中设置比赛速度目标,并同步至手表。 如果您已计划好当天的比赛速度目标,手表会在进入训练准备模式时建议您启动该目标。 在手表上创建比赛速度目标 您可以

  • 图片是放在金蝶服务器上,前端页面el-image的src放图片的访问路径,加载的速度得4 5秒吧,请问大神这种情况怎么优化,使图片的加载速度变快?

  • 问题内容: 给定一个1.5 Gb的熊猫数据帧列表, 哪种格式是加载压缩数据最快的格式 :pickle(通过cPickle),hdf5或Python中的其他格式? 我只关心最快的速度将数据加载到内存中 我不在乎转储数据,它很慢,但是我只做一次。 我不在乎磁盘上的文件大小 问题答案: 我只考虑两种存储格式:HDF5(PyTables)和Feather 这是我对DF进行读写比较的结果(形状:400000

  • 问题内容: 它们看起来几乎一样,甚至是语法? 使用什么?或什么时候使用什么? 问题答案: 速度不再是真正活跃的开发。Freemarker是。 根据我的经验,Freemarker也更加灵活。