python读数据-如何用 Python 读取数据?
原标题:如何用 Python 读取数据?
这是林骥的第 36 篇文章
1. 序言
读取数据往往是做数据分析的第一步,本文没有讲那些艰涩难懂的概念,只有一些问题的解决方案,当你遇到类似的问题的时候,可以拿来参考借鉴。
首先,我们下载并安装最新的 Python 集成环境:Anaconda,其次,在命令行输入 jupyter lab,系统将用浏览器打开下面的网址:
http://localhost:8888/lab
然后,在其中新建一个 Notebook,接下来就可以开始写代码了。
我们将统一使用 Pandas 来读取数据:
# 导入 pandas 模块
importpandas aspd
这是每次重新开始数据分析之前,都需要运行的代码,以后凡是见到包含 pd. 的代码,就表示我们已经运行了这行代码。
输入 pd.read 后,按 Tab 键,系统将把以 read 开头的函数和模块都列出来。
运行以下代码:
pd.*read*?
返回的结果是 Pandas 中所有包含 read 的函数和模块,可以看出 Pandas 能够读取的数据类型有很多,我选择几个常用的函数进行简要的介绍。
2. 如何从 Excel 文件中读取数据?
我们直接看 Python 代码:
# 导入 Excel 文件
df = pd.read_excel( '文件名.xlsx')
其中 pd.read_excel 函数,有很多可选参数,如果你忘记了具体用法,可以运行:
# 查询帮助文档
pd.read_excel?
你将会看到比较详细的帮助文档,还有一些例子。
我觉得使用问号( ? )是一个非常好的方法,适用于各种对象。
如果一个问号还解决不了问题,那么还可以试试双问号( ?? ):
# 查询帮助文档和源代码
pd.read_excel??
3. 如何从 MySQL 数据库中读取数据?
在第一次运行之前,需要先安装 pymysql ,在 Jupyter Notebook 中运行:
# 安装或更新 pymysql
!pip3 install --upgrade pymysql
安装成功后,可以用下面的代码实现从 MySQL 数据库中读取数据:
# 从 sqlalchemy 导入创建引擎的功能
fromsqlalchemy importcreate_engine
# 建立数据库连接,替换其中的用户名、密码、主机地址、端口、数据库名
con = create_engine( 'mysql+pymysql://root:xxxxxx@192.168.0.1:3306/testdb')
# 写 SQL 语句
sql = "SELECT * FROM table"
# 读取数据
df = pd.read_sql(sql, con)
df.head
如果相关信息正确,且能正常连通数据库,那么运行将得到一个数据框。
但是,上面的代码包含数据库密码这类敏感信息,建议不要直接把这类敏感信息直接写在代码中,一旦不小心上传到网上,就容易造成信息泄露。
我们可以把敏感信息保存在单独的文件中,首先,在当前运行环境的目录下面,新建一个文件夹,命名为 password;其次,在 password 文件夹中,新建一个文件,命名为 root@mysql.txt;然后,在该文件中,输入以下内容:
mysql+pymysql://root:xxxxxx@192.168.0.1:3306/testdb
接下来,我们就可以调用这个包含敏感信息的文件:
# 从 sqlalchemy 导入创建引擎的功能
fromsqlalchemy importcreate_engine
# 建立数据库连接,替换其中的用户名、密码、主机地址、端口、数据库名
db_info = open( 'password/root@mysql.txt')
con = create_engine(db_info.read)
# 写 SQL 语句
sql = "SELECT * FROM table"
# 读取数据
df = pd.read_sql(sql, con)
df.head
因为敏感信息已经隐藏到其他文件中了,所以信息相对更加安全。
4. 如何从 PostgreSQL 数据库中读取数据?
在第一次运行之前,需要先安装 py-postgresql ,在 Jupyter Notebook 中运行:
# 安装或更新 py-postgresql
!pip3 install --upgrade py-postgresql
安装成功后,可以用下面的代码实现从 PostgreSQL 数据库中读取数据:
# 从 sqlalchemy 导入创建引擎的功能
fromsqlalchemy importcreate_engine
# 建立数据库连接,替换其中的用户名、密码、主机地址、端口、数据库名
con = create_engine( 'postgres://linjiwx:xxxxxx@192.168.0.2:5432/testdb')
# 写 SQL 语句
sql = "SELECT * FROM table"
# 读取数据
df = pd.read_sql(sql, con)
df.head
类似地,你也可以参考前面介绍过的方法,把密码等敏感信息保存在单独的文件中,我们在这里就不重复演示了。
5. 如何从 Oracle 数据库中读取数据?
在第一次运行之前,需要先安装 cx_Oracle ,在 Jupyter Notebook 中运行:
# 安装或更新 cx_Oracle
!pip3 install --upgrade cx_Oracle
安装成功后,可以用下面的代码实现从 Oracle 数据库中读取数据:
# 防止中文乱码
importosos.environ[ 'NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# 从 sqlalchemy 导入创建引擎的功能
fromsqlalchemy importcreate_engine
# 建立数据库连接,替换其中的用户名、密码、主机地址、端口、数据库名
con = create_engine( 'oracle+cx_oracle://system:xxxxxx@192.168.0.3:1521/orcl')
# 写 SQL 语句
sql = "SELECT * FROM table"
# 读取数据
df = pd.read_sql(sql, con)
从上面的几个例子,我们可以看到,利用 SQLAlchemy 框架,从不同数据库中读取数据的方法非常相似,只需要简单地修改一些参数即可。
6. 如何从网页中读取数据?
当访问 https 网页时,为了防止报错,需要用到 ssl 模块,解决证书不受信任的问题。
# 为了防止报错:SSLV3_ALERT...
importssl
ssl._create_default_https_context = ssl._create_unverified_context
# 网址
url = 'http://s.askci.com/stock/a/?reportTime=2019-03-31&pageNum=1'
# 读取网页中的表格数据
dfs = pd.read_html(url)
其中 read_html 函数会读取当前网页的所有表,我们可以用 dfs[0] 获取网页中的第一个表。
7. 小结
在正式开始进行数据分析之前,通常需要先读取数据,本文介绍了用 Python 从 5 种不同的地方读取数据,分别是从 Excel、MySQL、PostgreSQL、Oracle 数据库和网页中读取数据,其中有一些代码其实是伪代码,不是复制粘贴后就能直接运行得到结果的,需要你根据自己的实际情况,修改其中的参数和表名等信息。
最后,不要忘了去实践,就像你学骑自行车,就算你把理论知识都彻底搞明白了,如果不骑上自行车去试试,那么终究还是不会骑的。
责任编辑:
python读数据-如何用 Python 读取数据?相关推荐
- python读数据-如何用Python读取开放数据?
当你开始接触丰富多彩的开放数据集时,CSV.JSON和XML等格式名词就会奔涌而来.如何用Python高效地读取它们,为后续的整理和分析做准备呢?本文为你一步步展示过程,你自己也可以动手实践. 需求 ...
- python二维数组按列读取数据
python二维数组按列读取数据 a=np.array([[1,2,3],[1,2,3]]) a[:,1] 输出array([2, 2])
- chatgpt赋能python:Python迭代:如何用Python迭代优化你的程序?
Python 迭代:如何用 Python 迭代优化你的程序? 引言 Python 是一门强大的编程语言,在科学计算.数据分析.Web 开发.人工智能等领域都得到了广泛的应用.其中,Python 的迭代 ...
- python读数据小数点_将excel数据读入pandas dataframe,精确到小数点后20位
我试着用excel读取数据pandas.excel文件()到数据帧中,然后使用tocsv输出文本文件.在 此输出文本文件的精度应为小数点后20位,并四舍五入到小数点后20位.在 如果excel中的输入 ...
- python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片
原标题:如何用Python来制作简单的爬虫,爬取到你想要的图片 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我 ...
- 如何自学python数据分析-Python学习干货 |如何用Python进行数据分析?
为什么选择Python进行数据分析? Python是一门动态的.面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言.Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读 ...
- 词云python灿烈_如何用Python做中文词云?
打算绘制中文词云图?那你得先学会如何做中文文本分词.跟着我们的教程,一步步用Python来动手实践吧. 需求 在<如何用Python做词云>一文中,我们介绍了英文文本的词云制作方法.大家玩 ...
- python怎么用excel-如何用python打开excel
最近看到好几次群里有人问xlwt.wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用of ...
- wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!! 但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用 ...
最新文章
- Java DecimalFormat 用法 小数位的处理 公司内部处理小数位
- 伪造服务钓鱼工具Ghost Phisher
- 知识体系地图模型:你是如何有效地学习?
- 怎么用python实现回归_Python使用sklearn实现的各种回归算法示例
- Leetcode惊现马化腾每天刷题?为啥大佬都这么努力?代码你打算写到几岁?
- 链表之单、双链表反序
- unity常连接mysql,Unity使用BestHttp插件时Socket.IO保持长连接的问题
- office365安装文件_Microsoft 365(原Office 365)离线下载安装教程
- SOA学习笔记001---SOA 服务架构之简介及理解
- 跨域通信——多窗口通信
- 双摄像头做slsm_刚刚考完!真实双机位复试经验帮你避雷!
- 【CVPR2020】Designing Network Design Spaces
- 如何推动数字经济新时代产业转型升级
- 架构——20——Jenkins+Gitlab实现持续集成——3
- 古典音乐CD购买经验谈
- mapDispatchToProps
- mysql是什么数据库
- 【人工智能】大脑传:人类大脑认识发展史
- 数据分析案例-旅游景点票价预测
- 21-CSS中的3D属性