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

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

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

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

3 、除了增删查改以外,平时用 pandas 最多的功能是什么?
3747 次点击
所在节点    Python
29 条回复
cmdOptionKana
2020-10-17 08:18:59 +08:00
比起计算,数据库更重要的功能是储存。pandas 能并发写入并且确保及时持久化吗,有事务吗,有访问权限管理吗?
siriussilen
2020-10-17 08:44:37 +08:00
pandas 最垃圾的地方在于不支持并行化
zhangysh1995
2020-10-17 13:57:08 +08:00
@hooopo 我可没有说 pandas 适合大数据。从我的了解来说,如果现在工具能解决时序分析的问题,Timescale DB 为什么会出现?我是从关系数据库使用的角度来回答问题的。不知道你说话为什么这么咄咄逼人的。
zhangysh1995
2020-10-17 14:09:30 +08:00
@Hlianbobo 不是所有都不可以,新的数据库要解决问题的。可以看 Percona 的报告,https://www.percona.com/sites/default/files/presentations/Accelerate-MySQL-for-Demanding-OLAP-and-OLTP-Use%20Cases.pdf
nuistzhou
2020-10-17 14:54:35 +08:00
很简单啊,他俩定位就不一样的,数据库是用来存数据的,当然 OLAP 可以进行基本的查询计算啥的很方便,但更高级灵活的分析还是用 pandas 从数据库或者文件里读出来做好一些。
Hlianbobo
2020-10-17 15:44:46 +08:00
@nuistzhou 关于高级灵活的分析可否举个常见例子。pandas 做的好,sql 做不到或做起来不方便。
wuwukai007
2020-10-17 17:09:03 +08:00
@Hlianbobo 均方误差、平方差、方差、均方差、协方差,在加上计算移动窗口内的 (均方误差、平方差、方差、均方差、协方差)
volvo007
2020-10-17 20:09:58 +08:00
一个工具解决所有问题怎么可能,互相取长补短就完了

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

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

问题 3
pands 用来做数据分析的,是“用数据”而不是“维护 /存取数据”
princelai
2020-10-19 18:16:09 +08:00
@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 都有例子可以查看。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/715734

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX