解决seaborn.load_dataset()调取数据失败http.client.IncompleteRead

问题描述: 使用seaborn.load_dataset(“tips”)调取数据失败

File "/Users/dan/Desktop/test.py", line 68, in <module>
    tips = sns.load_dataset("tips")
  File "/Users/dan/miniforge3/lib/python3.9/site-packages/seaborn/utils.py", line 594, in load_dataset
    if name not in get_dataset_names():
  File "/Users/dan/miniforge3/lib/python3.9/site-packages/seaborn/utils.py", line 521, in get_dataset_names
    html = resp.read()
  File "/Users/dan/miniforge3/lib/python3.9/http/client.py", line 466, in read
    return self._readall_chunked()
  File "/Users/dan/miniforge3/lib/python3.9/http/client.py", line 580, in _readall_chunked
    raise IncompleteRead(b''.join(value))
http.client.IncompleteRead: IncompleteRead(135166 bytes read)

原理:

如seaborn.load_dataset(“tips”)函数默认首先从本地库调取tips.csv文件,会失败。因为tips.csv文件在seaborn-data库中,但是这个库并没有被默认安装。然后load_dataset()函数远程调取tips.csv文件,即通过GitHub地址(path = (“https://raw.githubusercontent.com/mwaskom/seaborn-data”))来调取,这里可能因为网络的问题访问不了,会导致报错。

解决方法:所以还是推荐直接下载seaborn-data数据库到本地,再访问。

  1. 下载seaborn-data。附上seaborn自带的数据下载地址:GitHub网盘.

  2. 找到load_dataset()在本地的数据库地址。进入Python控制台,输入:

    import seaborn as sns
    sns.utils.get_data_home()
    

    返回以下形式的地址,如'/Users/dan/seaborn-data'

  3. 将下载的文件夹解压,然后把里面的内容复制到数据库地址/Users/dan/seaborn-data下。
    在这里插入图片描述

  4. 测试下:
    load_dataset(“tips”)函数默认首先从本地库调取tips.csv文件,通过上面操作,tips.csv文件已经在seaborn-data库中,所以可以直接调取。

    import matplotlib.pyplot as plt
    import seaborn as sns
    
    sns.set_theme(style="ticks", color_codes=True)
    
    tips = sns.load_dataset("tips")
    sns.catplot(x="day", y="total_bill", data=tips)
    plt.show()
    
    

在这里插入图片描述参考:seaborn

欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。
在这里插入图片描述

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值