Pandas数据读取三连“坑”💮🏵️🌸
引导
大家小时候有没有用玩儿过一种飞行棋,两个人玩儿,摇骰子摇到几然后就相应的往前走几步,看谁先到终点谁就胜利了。在玩儿的途中,地图上有很多奖励或者陷阱,有的时候运气不好,连中好几个陷阱不但没有前进反而还后退了。
这不最近再看Pandas数据读取的知识时候,我就踩了好几个小坑,幸亏把学习文档上的提供的demo进行了验证,不然在以后项目应用的时候再遇到了岂不是挺尴尬了。
好了,让我们走进数据读取的数据大森林吧🌲🌲🌲
提供
我们知道Pandas库主要是数据读取和数据清洗的。数据读取的是否准确没有遗漏这是非常重要的。之前我们有时候要读取数据的时候手写IO流进行读取,也是挺麻烦的了🙃,Pandas库解决了我们这一部分的烦恼,给我们提供了非常丰富的读取数据的函数。
针对数据存储的格式不同,相应的读取方式也是不同的。我们常用的有这么几种,简单介绍一下:
1.read_csv()函数: 专门读取.csv格式的文件。
2.read_excel()函数:读取excel格式的数据。
3.read_sql()函数:在数据区读取数据。
4.read_json()函数:在json字符串中读取数据。
5.read_html()函数:专门读取html页面中的数据。
这些函数不是很难,传递的参数基本上都差不多都需要文件名,read_sql()函数函数比较特殊,因为它是直接从数据库读取数据。
文件读取方式就是这么多。我们肯定得一一验证,不然怎能发现其中是否有坑呢?就像电影的结局说的那样 “法相在皮相之内,真身在假身之中”。
验证
这里为了节约时间,其他的函数代码直接验证一笔带过,相关代码:
"""
@Created on : 2024/5/30 10:27
@creator : er_nao
@File :pandas_07_常用函数.py
@Description :
"""
import pandas as pd
import pymysql
# 1.csv
print('使用csv')
df1 = pd.read_csv('../property-data.csv')
print(df1)
print('\n')
# 3.sql
print('使用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.json
print('使用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 class 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