主题:Python爱好者俱乐部
正序浏览
主题图片汇总
主题内检索
浏览:18185 回帖:542
游客没有回帖权限
泡菜
泡网分: 7.186
主题: 58
帖子: 1366
注册: 2006年12月
benniewang 发表于 2022-5-19 21:27
就好像

for index, row in df.iterrows():

for i in range(0, len(df)):

更喜欢后者。多写点注释吧。

另外每个list的名字都可以定义成 name_list = [], email_list = [] 那么以后就可以 name = name_list[1]

email = email_list[1] 来使用 一点不麻烦。


比如二维表格:

name           email
张三             [email]zhang3@qq.com[/email]
李四             [email]lisi@163.com[/email]
王五             [email]wangwu@sina.com[/email]

按照你的list构造方法,实际上把列变成了行? 迭代时循环可以用序号1-N,不过这也是个不错的方法。

(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
手倦抛书 发表于 2022-5-19 18:07
正在学习,pandas不知道读取sql有没有速度和内存优势


与谁比呢?
Java ResultSet ?

体积 ResultSet  完胜
易用性 pandas read_sql to_sql完胜

速度? 其实差不多的,这语言是有差异,可数据库更慢。
就我们的库 要是人写好了sql prepareStatement 往里灌 java比 指定对了类型的pandas 略快1000W行的数据 能快个半分钟以内吧 (刨除数据库影响)

我们除了固定的用java写的,个人用的都是python的(用java的原因很大程度上是服务器是centos 7 jdk8更方便) 本帖最后由 闲聊状态 于 2022-5-20 08:50 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
benniewang 发表于 2022-5-20 03:10
无论是外部还是内部,都可以跟对方提要求给你可操作的干净数据,否则整天忙着清洗数据效率太低了。


1.上级单位
2.我不会

所以 一般外面都拒绝CSV
一般的数据交换 xlsx 就够了 这个都会

要求?我就是集团董事长 我下个文 谁这么瞎折腾就扣工资 也没用 你信不? 本帖最后由 闲聊状态 于 2022-5-20 08:47 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
闲聊状态 发表于 2022-5-20 00:00
等我见到的时候已经是混杂态,不具备可操作性了……

无论是外部还是内部,都可以跟对方提要求给你可操作的干净数据,否则整天忙着清洗数据效率太低了。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.505
主题: 35
帖子: 3462
注册: 2003年7月
benniewang 发表于 2022-5-19 23:53
找到一个好玩的库 pandasql, 可以在pandas里运行sql


看了下源代码其实没几行,就是把数据导入sqllite,然后执行sql。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
benniewang 发表于 2022-5-19 21:32
做个预处理,把字符串里的逗号统一改成一个自定义字符,等进了pandas再改回来。


等我见到的时候已经是混杂态,不具备可操作性了……
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
找到一个好玩的库 pandasql, 可以在pandas里运行sql
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 51.612
主题: 197
帖子: 34449
注册: 2008年8月
内容贡献勋章
年内主力装备
GFX100S
LEICA M (Typ 262)
★ NIKON Z 7_2
手倦抛书 发表于 2022-5-19 22:28
其实现在用excel直接读取,觉得有点慢,不知道用个litesql能否好点


可以实际测试一下 sqlite性能还是不错的
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 14.218
主题: 55
帖子: 2794
注册: 2009年6月
arondes 发表于 2022-05-19 21:45
这个问题的表述我觉得就不对

其实现在用excel直接读取,觉得有点慢,不知道用个litesql能否好点
发布自 安卓客户端
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 51.612
主题: 197
帖子: 34449
注册: 2008年8月
内容贡献勋章
年内主力装备
GFX100S
LEICA M (Typ 262)
★ NIKON Z 7_2
手倦抛书 发表于 2022-5-19 18:07
正在学习,pandas不知道读取sql有没有速度和内存优势


这个问题的表述我觉得就不对
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
闲聊状态 发表于 2022-5-19 16:08
1. 有逗号
2.这个没办法,不是啥都支持 UTF-8 尤其是WIN系统录入的东西,而且Win录个汉字的都能有个别字符不是那个字符集的 无论指定 UTF-8 或者 GBK 都不行,而 同样的文件导入access就轻松愉快
3. 等等 等等。。。。。


做个预处理,把字符串里的逗号统一改成一个自定义字符,等进了pandas再改回来。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
手倦抛书 发表于 2022-5-19 18:07
正在学习,pandas不知道读取sql有没有速度和内存优势

要速度快,内存小,请用C。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
大信 发表于 2022-5-19 09:27
应对列略多一点的二维表格还是DataFrame方便,用list太磨人了。
row[0],row[1],row[2],,,,,row[n] 几天不看代码就忘记下标对应哪个字段。

就好像

for index, row in df.iterrows():

for i in range(0, len(df)):

更喜欢后者。多写点注释吧。

另外每个list的名字都可以定义成 name_list = [], email_list = [] 那么以后就可以 name = name_list[1]

email = email_list[1] 来使用 一点不麻烦。

本帖最后由 benniewang 于 2022-5-19 21:35 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 14.218
主题: 55
帖子: 2794
注册: 2009年6月
正在学习,pandas不知道读取sql有没有速度和内存优势
发布自 安卓客户端
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
大信 发表于 2022-5-19 09:44
简单用过CSV,这里面的坑还不太明白。
为啥倒不回去?因为字段信息里面有逗号吗?
字符集又有什么坑? UTF-8不行么?

1. 有逗号
2.这个没办法,不是啥都支持 UTF-8 尤其是WIN系统录入的东西,而且Win录个汉字的都能有个别字符不是那个字符集的 无论指定 UTF-8 或者 GBK 都不行,而 同样的文件导入access就轻松愉快
3. 等等 等等。。。。。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.186
主题: 58
帖子: 1366
注册: 2006年12月
闲聊状态 发表于 2022-5-18 11:43
看到 CSV 这东西就头皮发麻 先说那个默认分割“,” 导的出来,导不回去
再有就是字符集

要是还打算python折腾CSV 字符集的那个酸爽我实在是不堪回忆。。。。

遇到这种大的 如果是我弄出来的  原来都是access,现在基本上都是sqlite 大家都安逸

但是 总是有些人就是喜欢导CSV,而且是明明可以不CSV 他就非要 CSV  而且不改分隔符 哪怕改成 ''\U0001'' 分割也好


简单用过CSV,这里面的坑还不太明白。
为啥倒不回去?因为字段信息里面有逗号吗?
字符集又有什么坑? UTF-8不行么?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.186
主题: 58
帖子: 1366
注册: 2006年12月
benniewang 发表于 2022-5-18 11:07
目前工作而言,没有SQL用CSV也凑合。没有pandas用list也凑合。没啥大不了的。


应对列略多一点的二维表格还是DataFrame方便,用list太磨人了。
row[0],row[1],row[2],,,,,row[n] 几天不看代码就忘记下标对应哪个字段。

(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
yejun 发表于 2022-5-19 04:56
生产库大部分也是SQL吧?只不过要求OLTP。是不是因为大家都用ORM访问生产库所以觉得不是SQL了?还是这两年生产库都转向NoSQL了?


生产库现在大的都在转分布式 SQL依旧 但是不让写存储过程了是真的(数据库不支持了)

说实在的ORM 这种东西我就在公司新学生的毕业设计上见过 , 生产系统是微服务跑SQL的,逻辑复杂  没人搞ORM 没人线的淡疼 每天换数据库玩

SQL的耦合问题并不是问题,或者说是无法解决的问题
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
benniewang 发表于 2022-5-19 03:13
只有数值数据


我的梦想之一啊
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
yejun 发表于 2022-5-19 04:56
生产库大部分也是SQL吧?只不过要求OLTP。是不是因为大家都用ORM访问生产库所以觉得不是SQL了?还是这两年生产库都转向NoSQL了?

做时序数据分析的,什么OLTP/NoSQL都不懂。
只会会的那些东西。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.505
主题: 35
帖子: 3462
注册: 2003年7月
benniewang 发表于 2022-5-18 04:29
2、如果在生产sql服务器上跑很复杂的脚本(消耗计算资源),要被it投诉的。


生产库大部分也是SQL吧?只不过要求OLTP。是不是因为大家都用ORM访问生产库所以觉得不是SQL了?还是这两年生产库都转向NoSQL了?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
闲聊状态 发表于 2022-5-18 11:43
看到 CSV 这东西就头皮发麻 先说那个默认分割“,” 导的出来,导不回去
再有就是字符集

要是还打算python折腾CSV 字符集的那个酸爽我实在是不堪回忆。。。。

遇到这种大的 如果是我弄出来的  原来都是access,现在基本上都是sqlite 大家都安逸

但是 总是有些人就是喜欢导CSV,而且是明明可以不CSV 他就非要 CSV  而且不改分隔符 哪怕改成 ''\U0001'' 分割也好

之前的公司处理的文本数据有英语 法语 德语 西班牙语等。。。大概10几种语言,编码确实是个问题。但是由于csv是我自己生成的,所以读取也没啥问题,因为在输出的时候特别注意。
现在的公司,就只有数值数据了。无比的欢乐。。。。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
benniewang 发表于 2022-5-18 11:07
目前工作而言,没有SQL用CSV也凑合。没有pandas用list也凑合。没啥大不了的。


看到 CSV 这东西就头皮发麻 先说那个默认分割“,” 导的出来,导不回去
再有就是字符集

要是还打算python折腾CSV 字符集的那个酸爽我实在是不堪回忆。。。。

遇到这种大的 如果是我弄出来的  原来都是access,现在基本上都是sqlite 大家都安逸

但是 总是有些人就是喜欢导CSV,而且是明明可以不CSV 他就非要 CSV  而且不改分隔符 哪怕改成 ''\U0001'' 分割也好   本帖最后由 闲聊状态 于 2022-5-18 11:48 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 30.73
主题: 1
帖子: 8684
注册: 2008年12月
闲聊状态 发表于 2022-5-18 10:17
没有pandas的时候 大家的报表和分析报告都是靠冥想的么?

数据分析从来也没规定过只能依靠一种技术和路线

pandas这种东西我觉得主要的落地还是基于深度学习的“商业智能”
因为原来的机器学习那套 一般的库和基础构建 多多少少都有涉及 而且不是没有应用

深度这个是这几年大力发展的这方面除了python,剩下的都不算先进,而这些东西的基础数据存放基本上都是 pandas的dataframe

或者说 如果服务器上没插GPU,上不上python就看业务需要了

数据分析通常都是将所需数据用SQL提取出来,再用专用软件包进行数据分析的。
简单的报表和报告,如果只是分类、统计、均值,一般用不到数据分析的手段。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
大信 发表于 2022-5-18 10:29
应该说在数据分析上SQL和pandas各有长处,各有各的应用场合。
在适合的地方用适合的工具,而不是无线拔高某一方、摒弃另一方,才是最切合实际的方法。

目前工作而言,没有SQL用CSV也凑合。没有pandas用list也凑合。没啥大不了的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.891
主题: 170
帖子: 9708
注册: 2002年1月
话说回来,要是你会VBA,excel也能玩的很溜。而且这不还有个powerbi么,不会代码做做数据分析还是挺不错的,特别是出图很漂亮。 本帖最后由 benniewang 于 2022-5-18 11:08 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.186
主题: 58
帖子: 1366
注册: 2006年12月
应该说在数据分析上SQL和pandas各有长处,各有各的应用场合。
在适合的地方用适合的工具,而不是无线拔高某一方、摒弃另一方,才是最切合实际的方法。

(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
tianman 发表于 2022-5-18 09:33
SQL(Structured Query Language)这个查询语言,最基本的目的是从大大小小的“仓库”中提取所需要的数据。
它天生就不适合做数据分析用。因为它的计算效率不行,也没有必要的分析手段。
除了简单的统计操作以外,用SQL做数据分析,基本上属于程序员炫技。。。

而pandas的设计就是为了数据分析用的,提供了专业的处理数据的函数和方法。强大而高效。
它的“内存库”“中转站” 是用来存放被分析对象的。

没有pandas的时候 大家的报表和分析报告都是靠冥想的么?

数据分析从来也没规定过只能依靠一种技术和路线

pandas这种东西我觉得主要的落地还是基于深度学习的“商业智能”
因为原来的机器学习那套 一般的库和基础构建 多多少少都有涉及 而且不是没有应用

深度这个是这几年大力发展的这方面除了python,剩下的都不算先进,而这些东西的基础数据存放基本上都是 pandas的dataframe

或者说 如果服务器上没插GPU,上不上python就看业务需要了 本帖最后由 闲聊状态 于 2022-5-18 10:28 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 30.73
主题: 1
帖子: 8684
注册: 2008年12月
闲聊状态 发表于 2022-5-18 08:38
生产库上跑大SQL肯定是不可原谅的

但是

数据库就使用来说 基本上也是分 数据仓库(OLAP)与数据库(OLTP)(也就是一般意义上的生产库了)
数据仓库是与生产库分开的,而且架构都不一定相同,不只有关系型数据库,更有Hadoop这种东西
这些库 跑大SQL基本上是常态,本来就是用来做分析的

pandas 就是个“内存库”“中转站” 小数据量咋都行,数据量上去了 不光内存受不了 取放数据也受不了
很多奇技淫巧且不说好不好用,就说在巨大的数据量面前 都是白给

这是我 日常折腾的表中的一张 一天的数据量就这些行 14084958360 列数也有限 就12列,正常SQL 每次至少3,4张类似体量的
pandas不当中转站能行么。。。。

SQL(Structured Query Language)这个查询语言,最基本的目的是从大大小小的“仓库”中提取所需要的数据。
它天生就不适合做数据分析用。因为它的计算效率不行,也没有必要的分析手段。
除了简单的统计操作以外,用SQL做数据分析,基本上属于程序员炫技。。。

而pandas的设计就是为了数据分析用的,提供了专业的处理数据的函数和方法。强大而高效。
它的“内存库”“中转站” 是用来存放被分析对象的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.239
主题: 11
帖子: 15129
注册: 2012年6月
benniewang 发表于 2022-5-18 04:29
你说的很对。
在我的理解里:
1、sql是个数据仓库,最重要的是能够高效安全的存储数据,并为查询提供便利。
2、如果在生产sql服务器上跑很复杂的脚本(消耗计算资源),要被it投诉的。
3、pandas是运行中的数据库,在内存里,一旦需要把数据保存下来,要么csv,要么输出到sql数据库。

生产库上跑大SQL肯定是不可原谅的

但是

数据库就使用来说 基本上也是分 数据仓库(OLAP)与数据库(OLTP)(也就是一般意义上的生产库了)
数据仓库是与生产库分开的,而且架构都不一定相同,不只有关系型数据库,更有Hadoop这种东西
这些库 跑大SQL基本上是常态,本来就是用来做分析的

pandas 就是个“内存库”“中转站” 小数据量咋都行,数据量上去了 不光内存受不了 取放数据也受不了
很多奇技淫巧且不说好不好用,就说在巨大的数据量面前 都是白给

这是我 日常折腾的表中的一张 一天的数据量就这些行 14084958360 列数也有限 就12列,正常SQL 每次至少3,4张类似体量的
pandas不当中转站能行么。。。。 本帖最后由 闲聊状态 于 2022-5-18 08:48 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
回复主题: Python爱好者俱乐部
功能受限
游客无回复权限,请登录后再试