主题:Python爱好者俱乐部
正序浏览
主题图片汇总
主题内检索
浏览:17410 回帖:522
游客没有回帖权限
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
为什么pandas的read_excel不能打开网络上的xlsx文件? 如果这个文件下载到本地,打开就没有问题:

# 为什么read_excel不能远程打开xlsx文件?百思不得其解
df = pd.read_excel('https://www_gairuo_com/file/data/dataset/team.xlsx',engine='openpyxl')
df = pd.read_excel("team.xlsx",engine='openpyxl')

---------------读https://远程文件的报错信息-----------------
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 1350, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1240, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1286, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1235, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1006, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 946, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1409, in connect
    self.sock = self._context.wrap_socket(self.sock,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 1040, in _create
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Volumes/4TB_DATA/Python项目/panda_study/T-行列选择.py", line 11, in <module>
    df = pd.read_excel('https://www_gairuo_com/file/data/dataset/team.xlsx',engine='openpyxl')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/excel/_base.py", line 304, in read_excel
    io = ExcelFile(io, engine=engine)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/excel/_base.py", line 824, in __init__
    self._reader = self._engines[engine](self._io)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/excel/_openpyxl.py", line 485, in __init__
    super().__init__(filepath_or_buffer)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/excel/_base.py", line 342, in __init__
    filepath_or_buffer = BytesIO(urlopen(filepath_or_buffer).read())
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/common.py", line 141, in urlopen
    return urllib.request.urlopen(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 1393, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/urllib/request.py", line 1353, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)>

本帖最后由 大信 于 2022-5-15 15:10 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
闲聊状态 发表于 2022-5-15 00:23
sql其实主要是用于统计分析

只要是二维表结构的,哪个有数据库+sql能打呢?

pandas 对我 就是个中转站,要么导入,要么送出,最多再来个刚转列……
需要pandas 做数据分析的时候,我都是送到数据库跑sql...


我们公司有些程序员的SQL很牛,能写出很长很烧脑的SQL代码。但是我不知道比如股票数据,计算5日,10日均线数据(MA5,MA10)的SQL代码好不好写?

如果是用pandas的话就非常好办,利用移动窗口函数一条命令就搞定了:
N = 5,10,,,,,,
df[“Close”].rolling(N).mean()

其中Close列为当日收盘数据
----------------------------------
例如:

本帖最后由 大信 于 2022-5-15 15:06 编辑
登录后可直接显示原图
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.488
主题: 41
帖子: 3446
注册: 2003年7月
benniewang 发表于 2022-5-15 09:34
要是数据从外部来,那就麻烦了,数据清洗比分析还浪费时间和经历。。。。


是很复杂,所以要做ETL架构设计啊。还有不少云数据平台。开源软件hadoop,spark,flink什么的。 本帖最后由 yejun 于 2022-5-15 13:23 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
闲聊状态 发表于 2022-5-15 00:23
sql其实主要是用于统计分析

只要是二维表结构的,哪个有数据库+sql能打呢?

pandas 对我 就是个中转站,要么导入,要么送出,最多再来个刚转列……
需要pandas 做数据分析的时候,我都是送到数据库跑sql...

做的项目,基本上是从公司sql服务器里联合查询拿到数据存成csv,然后pandas读取,再用统计或者机器学习的算法跑出结果。。。要是数据从外部来,那就麻烦了,数据清洗比分析还浪费时间和经历。。。。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.13
主题: 11
帖子: 15051
注册: 2012年6月
yejun 发表于 2022-5-15 00:54
这两个又不矛盾。从大量数据提取的时候用sql。对小量数据探索的时候用pandas,可以简单加减乘除,可以生成临时列临时表,用sql做子表导入导出不要麻烦死了啊。pandas还可以多级表头列头很直观,用sql就变成多个相关表,也是麻烦死了。pandas画图也很方便。pandas也有可以用sql查询的前段,和用sql存数据的后端,pyspark好像还有个pandas前段看上去不错。肯定两个一起用效率最高。

可能是经历不同吧

数据清洗这种事情 一般来说 就是SQL我也得写一堆,让我写pandas我是不干的
sql的结构 这么多年已经被无数场景证明了 而且我这么多年也算一路SQL过来的,所以看到数据,首先都是 to_sql 然后select ....

而且sql是一种比python还有高级的语言 其解决具体领域的问题我是觉得它的表达是更简练的
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.488
主题: 41
帖子: 3446
注册: 2003年7月
闲聊状态 发表于 2022-5-15 00:23
sql其实主要是用于统计分析

只要是二维表结构的,哪个有数据库+sql能打呢?

pandas 对我 就是个中转站,要么导入,要么送出,最多再来个刚转列……
需要pandas 做数据分析的时候,我都是送到数据库跑sql...


这两个又不矛盾。从大量数据提取的时候用sql。对小量数据探索的时候用pandas,可以简单加减乘除,可以生成临时列临时表,用sql做子表导入导出不要麻烦死了啊。pandas还可以多级表头列头很直观,用sql就变成多个相关表,也是麻烦死了。pandas画图也很方便。pandas也有可以用sql查询的前段,和用sql存数据的后端,pyspark好像还有个pandas前段看上去不错。肯定两个一起用效率最高。 本帖最后由 yejun 于 2022-5-15 01:05 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.13
主题: 11
帖子: 15051
注册: 2012年6月
benniewang 发表于 2022-5-14 01:59
使用sql是为了从数据库查找数据(当然不是说sql不能做一些简单的统计分析)。但是df是用来存储运行中的结构化数据,并且可以做很多复杂的统计分析。


sql其实主要是用于统计分析

只要是二维表结构的,哪个有数据库+sql能打呢?

pandas 对我 就是个中转站,要么导入,要么送出,最多再来个刚转列……
需要pandas 做数据分析的时候,我都是送到数据库跑sql...
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.488
主题: 41
帖子: 3446
注册: 2003年7月
access主要是前端吧,后端数据库可以用odbc连接,理论上也应该也可以做数据处理。python的强项主要还是各种库多,而且前端jupyter也挺好用的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
Cityrain 发表于 2022-5-13 15:15
这些东西如果数据不大的话,应该excel就能搞定。
数据的处理和计算的话,python理论上可以搞定一切,当然只学个入门课程是不太够的。我access没怎么用过,但应该不比Oracle之类的强大,你觉得access能搞定的,我看python铁定可以办到。

access就是一个轻量化的sql数据库,前台可以做一些报表什么的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
闲聊状态 发表于 2022-5-11 11:03
现在办公室都让卸载office了

装WPS

access 没戏了

用sqlite吧 python就集成了。。。

大数据 还是sql吧 我是不习惯 pandas 里来回的鼓捣数据,就是觉得不如sql方便

使用sql是为了从数据库查找数据(当然不是说sql不能做一些简单的统计分析)。但是df是用来存储运行中的结构化数据,并且可以做很多复杂的统计分析。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 50.301
主题: 193
帖子: 33717
注册: 2008年8月
内容贡献勋章
年内主力装备
★ GFX100S
LEICA M (Typ 262)
Canon EOS RP
大信 发表于 2022-5-9 12:20
在使用pandas的Dataframe的时候遇到一个问题,报错信息显示“页面文件太小,无法操作”,以及out of memory

我编写的python程序中使用了多线程,dataframe等技术。通过任务管理器观察程序启动运行时的内存占用情况,当多进程启动后内存占用逐步提高,在接近9GB的时候,程序就发生崩溃。而实际配置的内存是16GB 。感觉这个问题似乎跟python的内存配置有关?

请路过的各位python专家帮忙看看报错信息,分析原因帮忙解决。 谢谢!

@nahcooo @yejun @benniewang @闲聊状态


看看能不能把dataframe里面的一些字段的数据类型压缩一下 比如用int8 float16 还有就是最好回避object类型
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 46.567
主题: 72
帖子: 10147
注册: 2003年7月
想想心痛 发表于 2022-05-13 15:43
当然python当作一门编程语言,当然能搞定一切,但得结合数据库才能搞定,如果和excel配合是不行的。

哈哈,我经常把数据库的数据拉到python里处理,灵活性比数据库高很多。单独数据库很难做到全程自动化,但用编程语言就可以把信息输入,处理,结果输出和呈现一口气搞定。
发布自 iOS客户端
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 5.495
主题: 5
帖子: 5450
注册: 2010年3月
python虽然编起来简单,有大量第三方库支持,但基本的循环,判断等编程逻辑思想,数据结构知识还是要有的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 4.331
主题: 61
帖子: 3047
注册: 2014年8月
Cityrain 发表于 2022-5-13 15:15
这些东西如果数据不大的话,应该excel就能搞定。
数据的处理和计算的话,python理论上可以搞定一切,当然只学个入门课程是不太够的。我access没怎么用过,但应该不比Oracle之类的强大,你觉得access能搞定的,我看python铁定可以办到。
当然python当作一门编程语言,当然能搞定一切,但得结合数据库才能搞定,如果和excel配合是不行的。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 46.567
主题: 72
帖子: 10147
注册: 2003年7月
想想心痛 发表于 2022-05-13 12:59
主要是涉及财务对账方面的内容。比如:一家外协厂商领料加工,每月加工费对账,但同时涉及领用的材料,要计算加工所用材料的正常损耗,超出损耗扣材料...

这些东西如果数据不大的话,应该excel就能搞定。
数据的处理和计算的话,python理论上可以搞定一切,当然只学个入门课程是不太够的。我access没怎么用过,但应该不比Oracle之类的强大,你觉得access能搞定的,我看python铁定可以办到。
发布自 iOS客户端
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 4.331
主题: 61
帖子: 3047
注册: 2014年8月
大信 发表于 2022-5-13 10:21
很感兴趣,你说的办公自动化具体是什么内容,为啥access可以完成而python不能?
主要是涉及财务对账方面的内容。比如:一家外协厂商领料加工,每月加工费对账,但同时涉及领用的材料,要计算加工所用材料的正常损耗,超出损耗扣材料费等,剩下材料结存加上月结存共结存多少。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
禁言中
泡网分: 0.999
主题: 14
帖子: 828
注册: 2021年2月
把Python编译成EXE文件体积太大了, 动辄几十MB甚至成百MB, 玩了几次就放弃了.
有段时间迷上了PHP编译, 把PHP程序编译成EXE最小只有500多KB. 即使打包几个库进去通常也只有2-4MB. 于是用PHP写了很多小玩意儿编译成了小巧的命令行小工具, 真是方便至极. 感觉PHP在处理文字、图片、数据库、文件系统甚至爬虫这些方面并不比Python差, 玩熟练了一样简单好用.
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 32.823
主题: 45
帖子: 4038
注册: 2002年7月
python适合不想在计算机语言上花费太多精力的人。也被程序员选择用于强调开发效率的场景。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
想想心痛 发表于 2022-5-10 10:38
以办公室自动化目标来学python的,到后来就会发现这是一个骗局。python根本无法实现所谓的办公自动化,如果真有这类需求,学习的目标应该是access。


很感兴趣,你说的办公自动化具体是什么内容,为啥access可以完成而python不能?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.13
主题: 11
帖子: 15051
注册: 2012年6月
现在办公室都让卸载office了

装WPS

access 没戏了

用sqlite吧 python就集成了。。。

大数据 还是sql吧 我是不习惯 pandas 里来回的鼓捣数据,就是觉得不如sql方便
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
禁言中
泡网分: 0.999
主题: 14
帖子: 828
注册: 2021年2月
想想心痛 发表于 2022-5-10 10:38
以办公室自动化目标来学python的,到后来就会发现这是一个骗局。python根本无法实现所谓的办公自动化,如果真有这类需求,学习的目标应该是access。
这是两码事. 只有Python实现不了你的目标, 只有 Access更实现不了你的目标. 所以2个都要学.
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
大信 发表于 2022-5-10 09:12
excel处理数据就不够干净、整齐吗?
能不能解释一下?


不是excel处理后的数据不够干净整齐,是excel无法处理不够干净整齐的数据。

数值型的没啥问题,但是字符数据的清理,excel根本不行。除非用vba,跟python没啥区别了。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
大信 发表于 2022-5-10 09:08
凭上面的文字和图片,你怎么判断是生产项目的?

就算在单位做项目,也都是一些带有研究性质的,不会用到实时,不会用到多线程,至少自己不会去开,或许有的库会自动做多线程处理,但这是库的功能而已。有的项目数据量确实很大,但是从来也达不到内存溢出的情况。不过就算遇到也不是什么大问题,公司有专门的计算服务器,再不行,放在云上。

研究性质的项目,代码怎么方便怎么来,不考虑代码运行效率,因此不做代码优化,唯一的要求是代码编写效率要高,要迅速把算法用代码实现,然后让机器慢慢的跑就行了。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 4.331
主题: 61
帖子: 3047
注册: 2014年8月
以办公室自动化目标来学python的,到后来就会发现这是一个骗局。python根本无法实现所谓的办公自动化,如果真有这类需求,学习的目标应该是access。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
benniewang 发表于 2022-5-9 21:28
那是你没用到而已,比方说:数据很干净,数据格式很整齐。。。


excel处理数据就不够干净、整齐吗?
能不能解释一下?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
nahcooo 发表于 2022-5-9 17:41
看着就是内存不足的原因,你的9GB占用是从哪里得到的?资源管理器刷新要时间,对于瞬间的高占用可能无法及时显示。

你可以试着每次大量开内存前先在python里主动询问一下内存剩余,并且记录日志。这样应该比资源管理器准确。


就是从资源管理器看内存占用,实际上比较滞后。内存用尽程序已崩溃,但是资源管理器还没有显示。
python 查询内存是个好办法!
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
benniewang 发表于 2022-5-9 21:29
我做的基本都不是生产的项目,所以从来没碰到过这样的事情。


凭上面的文字和图片,你怎么判断是生产项目的?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
老坛泡菜
泡网分: 34.488
主题: 41
帖子: 3446
注册: 2003年7月
大信 发表于 2022-5-9 14:08
的确就是内存不足的原因。
我把程序放到服务器上运行,那里有256GB内存,运行完全没有问题。

Windows 上资源管理器中对使用内存的显示滞后,以至于给我错觉9GB就崩溃,可能那时候实际使用的内存已经达到硬件极限,只是没有显示出来而已。

谢谢!


内存不够可以考虑上pandas+pyspark+数据湖,就可以处理大数据了。 本帖最后由 yejun 于 2022-5-10 02:33 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
大信 发表于 2022-5-9 12:20
在使用pandas的Dataframe的时候遇到一个问题,报错信息显示“页面文件太小,无法操作”,以及out of memory

我编写的python程序中使用了多线程,dataframe等技术。通过任务管理器观察程序启动运行时的内存占用情况,当多进程启动后内存占用逐步提高,在接近9GB的时候,程序就发生崩溃。而实际配置的内存是16GB 。感觉这个问题似乎跟python的内存配置有关?

请路过的各位python专家帮忙看看报错信息,分析原因帮忙解决。 谢谢!

@nahcooo @yejun @benniewang @闲聊状态

我做的基本都不是生产的项目,所以从来没碰到过这样的事情。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
想想心痛 发表于 2022-5-5 13:33
为电子表格处理没必要学python,原因是python并不能提供更高级的处理方式,还不如多学学excel自带的函数有用,比如:xlookup(),dget()

那是你没用到而已,比方说:数据很干净,数据格式很整齐。。。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
回复主题: Python爱好者俱乐部
功能受限
游客无回复权限,请登录后再试