大家小时候有没有用玩儿过一种飞行棋,两个人玩儿,摇骰子摇到几然后就相应的往前走几步,看谁先到终点谁就胜利了。在玩儿的途中,地图上有很多奖励或者陷阱,有的时候运气不好,连中好几个陷阱不但没有前进反而还后退了。
这不最近再看Pandas数据读取的知识时候,我就踩了好几个小坑,幸亏把学习文档上的提供的demo进行了验证,不然在以后项目应用的时候再遇到了岂不是挺尴尬了。
好了,让我们走进数据读取的数据大森林吧
提供我们知道Pandas库主要是数据读取和数据清洗的。数据读取的是否准确没有遗漏这是非常重要的。之前我们有时候要读取数据的时候手写IO流进行读取,也是挺麻烦的了,Pandas库解决了我们这一部分的烦恼,给我们提供了非常丰富的读取数据的函数。
针对数据存储的格式不同,相应的读取方式也是不同的。我们常用的有这么几种,简单介绍一下:
read_csv()函数: 专门读取.csv格式的文件。read_excel()函数:读取excel格式的数据。read_sql()函数:在数据区读取数据。read_json()函数:在json字符串中读取数据。read_html()函数:专门读取html页面中的数据。这些函数不是很难,传递的参数基本上都差不多都需要文件名,read_sql()函数函数比较特殊,因为它是直接从数据库读取数据。
文件读取方式就是这么多。我们肯定得一一验证,不然怎能发现其中是否有坑呢?就像电影的结局说的那样 “法相在皮相之内,真身在假身之中”。
验证这里为了节约时间,其他的函数代码直接验证一笔带过,相关代码:
"""@Created on : 2024/5/30 10:27@creator : er_nao@File :pandas_07_常用函数.py@Description :"""import pandas as pdimport pymysql# 1.csvprint('使用csv')df1 = pd.read_csv('../property-data.csv')print(df1)print('\n')# 3.sqlprint('使用sql')# 设置数据库连接参数db_connection = pymysql.connect(host='127.0.0.1', user='root', passwd='root', database='library', charset='utf8mb4')sql = "SELECT * FROM book_info"df3 = pd.read_sql(sql, db_connection)print(df3.to_string())# 4.jsonprint('使用json')df4 = pd.read_json('../list_json.json')print(df4.to_string())print('\n')# 输出结果# 使用csv# PID ST_NUM ST_NAME OWN_OCCUPIED NUM_BEDROOMS NUM_BATH SQ_FT# 0 100001000.0 104.0 PUTNAM Y 3 1 1000# 1 100002000.0 197.0 LEXINGTON N 3 1.5 --### 使用sql## id name author publish isbn introduction language price publish_date type_id status# 0 1 西游记 施耐庵 机械工业出版社 100011 师徒四人去西天取真经 中文 42.0 2020-03-20 1 0# 1 2 三国演义 罗贯中 清华大学出版社 100012 东汉末年分三国。。。 中文 48.0 2018-03-30 1 1## 使用json# school_name students# 0 ABC primary school Year 1 {'id': 'A001', 'name': 'Tom', 'math': 60, 'physics': 66, 'chemistry': 61}可以看到,三种数据读取的方法是没问题的。还有两个数据读取的函数没有验证,我们意义验证一下。
read_excel()函数 相关验证结果:
看到这儿我就头疼,既然这样的话,我们就将单斜杠改成双斜杠试试。
又是另外的问题,缺少openpyxl库,唉。。。那就就继续去装库吧。这个安装很简单我们就用pip安装就行,相关命令:pip install openpyxl。安装图示:
好了,安装完成了。回到编辑器中运行测试一下。正常输入了,也不报错了。嗯!控制台真是个好东西。
接下来我们看看read_html函数的表现。
这个函数也报错了,但是这个报错是不是似曾相识呢?没错跟read_excel函数的报错信息很像,都是找不到相应的库,既然这样,我们就再把上面的装库步骤进行一遍呗。lxml库的安装相关命令: pip install lxml,安装完成同样我们可以在pip列表中看到。
回到我们的demo中重新运行程序。结果又报没有html5lib库因为我们是直接获取页面上的数据的,页面就是html,所以pyhton得进行解析。相关命令 pip install html5lib
再次运行我们的程序,是成功的。(PS:为什么之前的爬取链接和成功的爬取连接不一样?因为之前那个链接的页面没有表格数据,所以换了一下!)
作者:二闹链接:https://juejin.cn/post/7374608035837198399