跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • pandas 和 sql 数据库的定位有哪些差别?
未分類
24 10 月 2020

pandas 和 sql 数据库的定位有哪些差别?

pandas 和 sql 数据库的定位有哪些差别?

資深大佬 : Hlianbobo 5

https://mp.weixin.qq.com/s/CrhyIA3hgZtQGJL1EtCOhw
大致看了一下上面的文章。主要说了一下两者的交集。我猜检索数据 pandas 肯定没有数据库快。有以下几个问题请教一下各位达人

1 、做数据分析的所谓大数据,应该都存在数据库中吧。即便时爬下来的数据应该也时放在数据库中吧?各位平时工作取数据难道时从一些 python 支持的文件当中读取数据?而不是从数据库中取数据?

2 、如果日常大多数场景都是从数据库里 select,那么 pandas 检索数据主要应用在什么工作场景中?操作时主要针对什么文件进行?( excel 除外。)

3 、除了增删查改以外,平时用 pandas 最多的功能是什么?

大佬有話說 (29)

  • 資深大佬 : wuwukai007

    一个二维数据,pandas 可以反复计算反复拼接,sql 确实可以实现很多分组聚合,但是只能查一次。当数据量大的时候更是这样,一次读完反复计算

  • 資深大佬 : zhangysh1995

    sql 是关系型数据库的语音,主要是用来维护数据的。pandas 是一个分析框架,面向应用。
    数据库主要就是增删查改,分析可能跑不动的。。如果是分析的数据库,可能类似 timescale db 这种?
    一般大数据分析应该都不用数据库的吧?

  • 主 資深大佬 : Hlianbobo

    @zhangysh1995 “分析可能跑不动的”请问关于分析的含义,可否举个例子来说明一下数据库跑不动分析。

  • 資深大佬 : gefranks

    当 OLAP 都是弱鸡?
    突然觉得朋友说公司里新来的年轻开发不会写 sql 也不是奇谈了

  • 資深大佬 : imn1

    数据分析最多是数学计算,不是单纯从一堆数据里面提取这、提取那就能有结果的

    先答 3,最多是计算

    2.例如计算一支股票的移动平均,SQL 干不了这事

    1.图片每个点的 RGB 值,这个就不是从数据库读的,当然这个场景多数是 numpy,不是 pandas

  • 資深大佬 : raymanr

    几百万行的数据的话反正我这里是 pandas 比 mysql 这**要快不少的, 而且 where 条件的指定更加方便

    而且 pandas 也能读取各种 csv 和 excel 和数据库中的数据同时使用,
    非常便利的时间函数,
    方便的透视表,
    和其他 python 库无缝衔接,
    数据可以随时 copy 清洗
    还有一点是 pandas 的数据集是有序的, sql 默认是无序的集合, 这就又平添了很多事情, 即使开窗函数也不能很好解决

    我觉得 SQL 还是勉强说得过去, 然而用了 pandas 后, 现在看到 sql 就想吐

    我恨 sql, 去死吧 sql

  • 資深大佬 : raymanr

    再补一句去死吧 mysql (和用 mysql 做 olap 的憨逼)

  • 資深大佬 : hooopo

    @zhangysh1995 扯 pandas 才不适合大数据 bigquery 和 snkowflake 了解一下

  • 資深大佬 : hooopo

    @raymanr 死不了 sql 会成为数据统一接口的

  • 資深大佬 : hooopo

    @imn1 移动平均干不了?不会就说不会

  • 資深大佬 : raymanr

    @hooopo
    干得了和很方便干不一样, pandas 一个函数修改修改参数就出来了的东西

    sql 写得累死累活的

    不过数据量太大 pandas 确实不适合

  • 資深大佬 : hooopo

    @raymanr 难道 sql 要两个函数?

  • 資深大佬 : raymanr

    @hooopo 比如透视表, pd.pivot_table(data, values, index, columns) 就完事, sql 你懂的, 各家还不一样

  • 資深大佬 : hooopo

    @raymanr 好吧 有点道理

  • 資深大佬 : wangyzj

    pandas 处理训练数据样本,量没那么大,快速方便,科学计算封装的好
    超大的数据有 spark ml 和 MapReduce
    但在处理超大数据之前得用 pandas 做样本分析

  • 資深大佬 : locoz

    其实你搞清楚它们两个的核心定位就不会有这种奇怪的问题了…一个是主要做数据分析的上层工具,一个是主要做数据长期存储的底层工具,这两个核心定位不同自然会导致性能、用法、方便程度等各方面的不同,都是根据具体用途而定的。
    说白了,数据库在经过外部工具扩展后,也一样可以变成主要做数据分析的工具的组成部分;但主要做数据分析的工具即使扩展了,也不会变成主要做数据长期存储的工具,因为不是同一个层面的东西。
    所以像你后面的问题,存哪真不重要,还是得看具体要怎么用…大数据如果只是临时使用并且以后也不会用的话,一样可以存在内存里用 pandas 做分析、一样可以直接先存到文本文件里…

  • 資深大佬 : liprais

    @raymanr 移动平均你用 mysql 当然累死累活了

  • 主 資深大佬 : Hlianbobo

    @raymanr 几百万行的数据一般存在什么文件中?

  • 資深大佬 : user8341

    这不是奇怪的问题。完全是很合理的问题。用过 pandas 的人都应该思考一下,为什么不用数据库做。两种方法的优缺点在哪里。

  • 資深大佬 : imn1

    @hooopo #10
    我就猜到有人会较真这个,果然

    你对
    笔算也能算啊,SQL 怎么做不了呢?
    我错了

  • 資深大佬 : cmdOptionKana

    比起计算,数据库更重要的功能是储存。pandas 能并发写入并且确保及时持久化吗,有事务吗,有访问权限管理吗?

  • 資深大佬 : siriussilen

    pandas 最垃圾的地方在于不支持并行化

  • 資深大佬 : zhangysh1995

    @hooopo 我可没有说 pandas 适合大数据。从我的了解来说,如果现在工具能解决时序分析的问题,Timescale DB 为什么会出现?我是从关系数据库使用的角度来回答问题的。不知道你说话为什么这么咄咄逼人的。

  • 資深大佬 : zhangysh1995

    @Hlianbobo 不是所有都不可以,新的数据库要解决问题的。可以看 Percona 的报告,https://www.percona.com/sites/default/files/presentations/Accelerate-MySQL-for-Demanding-OLAP-and-OLTP-Use%20Cases.pdf

  • 資深大佬 : nuistzhou

    很简单啊,他俩定位就不一样的,数据库是用来存数据的,当然 OLAP 可以进行基本的查询计算啥的很方便,但更高级灵活的分析还是用 pandas 从数据库或者文件里读出来做好一些。

  • 主 資深大佬 : Hlianbobo

    @nuistzhou 关于高级灵活的分析可否举个常见例子。pandas 做的好,sql 做不到或做起来不方便。

  • 資深大佬 : wuwukai007

    @Hlianbobo 均方误差、平方差、方差、均方差、协方差,在加上计算移动窗口内的 (均方误差、平方差、方差、均方差、协方差)

  • 資深大佬 : volvo007

    一个工具解决所有问题怎么可能,互相取长补短就完了

    问题 1
    有个 py 库叫 sqlalchemy,可以连接各种类型的数据库。连上,用这个类型 sql 的语法读想要的部分,传递给 pandas

    问题 2
    sql 的应用场景远比单一个 pandas 应用广泛。即使只用 select,有一些工具软件可以让这些 sql 命令模块化、可视化,方便开发和迁移(比如 Alteryx )。对应的 python 目前这一块还比较弱,很多时候还是要手写代码

    问题 3
    pands 用来做数据分析的,是“用数据”而不是“维护 /存取数据”

  • 資深大佬 : princelai

    @Hlianbobo #26 我 SQL 只会简单,但我说说我常用的 pandas 高级操作,你看看 SQL 好实现吗,pivot_table,透视表。melt 和 explode 操作,相当与 wide to long,rolling(window).apply(func),这个可以自定义周期,自定义函数。resample 、asfreq 、to_period 等时间操作,比如将一段有序但不连续的时间序列更换周期或者将该序列插值为固定周期的数据,然后将内部新时间点填充新数据。cut 、qcut 配合 categories 分组数据。pandas 观望上每个 API 都有例子可以查看。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具