likes
comments
collection
share

Pandas数据读取三连“坑”💮🏵️🌸

作者站长头像
站长
· 阅读数 25

引导

大家小时候有没有用玩儿过一种飞行棋,两个人玩儿,摇骰子摇到几然后就相应的往前走几步,看谁先到终点谁就胜利了。在玩儿的途中,地图上有很多奖励或者陷阱,有的时候运气不好,连中好几个陷阱不但没有前进反而还后退了。

这不最近再看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()函数 相关验证结果:

Pandas数据读取三连“坑”💮🏵️🌸

看到这儿我就头疼,既然这样的话,我们就将单斜杠改成双斜杠试试。

Pandas数据读取三连“坑”💮🏵️🌸

又是另外的问题,缺少openpyxl库,唉。。。😓😑那就就继续去装库吧。这个安装很简单我们就用pip安装就行,相关命令:pip install openpyxl。安装图示:

Pandas数据读取三连“坑”💮🏵️🌸

Pandas数据读取三连“坑”💮🏵️🌸

好了,安装完成了。回到编辑器中运行测试一下。正常输入了,🧐也不报错了。嗯!控制台真是个好东西。

Pandas数据读取三连“坑”💮🏵️🌸

接下来我们看看read_html函数的表现。

Pandas数据读取三连“坑”💮🏵️🌸

这个函数也报错了,但是这个报错是不是似曾相识呢?没错跟read_excel函数的报错信息很像,都是找不到相应的库,既然这样,我们就再把上面的装库步骤进行一遍呗。lxml库的安装相关命令: pip install lxml,安装完成同样我们可以在pip列表中看到。

Pandas数据读取三连“坑”💮🏵️🌸

回到我们的demo中重新运行程序。结果又报没有html5lib库因为我们是直接获取页面上的数据的,页面就是html,所以pyhton得进行解析。相关命令 pip install html5lib

再次运行我们的程序,是成功的。(PS:为什么之前的爬取链接和成功的爬取连接不一样?因为之前那个链接的页面没有表格数据,所以换了一下!) Pandas数据读取三连“坑”💮🏵️🌸

觉悟

好了,数据读取相关内容就记录到此。还是那句话 “法相在皮相之内,真身在假身之中”

千万不要被外表迷惑了,函数封装可不会告诉你要先安装什么库。这坑还得自己去亲自踩一遍才有意思。 以上内容仅是个人观点。如有不对,请各位指出,😳我会虚心改正滴!!!

转载自:https://juejin.cn/post/7374608035837198399
评论
请登录