原标题:如何用 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 读取数据?相关推荐

  1. python读数据-如何用Python读取开放数据?

    当你开始接触丰富多彩的开放数据集时,CSV.JSON和XML等格式名词就会奔涌而来.如何用Python高效地读取它们,为后续的整理和分析做准备呢?本文为你一步步展示过程,你自己也可以动手实践. 需求 ...

  2. python二维数组按列读取数据

    python二维数组按列读取数据 a=np.array([[1,2,3],[1,2,3]]) a[:,1] 输出array([2, 2])

  3. chatgpt赋能python:Python迭代:如何用Python迭代优化你的程序?

    Python 迭代:如何用 Python 迭代优化你的程序? 引言 Python 是一门强大的编程语言,在科学计算.数据分析.Web 开发.人工智能等领域都得到了广泛的应用.其中,Python 的迭代 ...

  4. python读数据小数点_将excel数据读入pandas dataframe,精确到小数点后20位

    我试着用excel读取数据pandas.excel文件()到数据帧中,然后使用tocsv输出文本文件.在 此输出文本文件的精度应为小数点后20位,并四舍五入到小数点后20位.在 如果excel中的输入 ...

  5. python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片

    原标题:如何用Python来制作简单的爬虫,爬取到你想要的图片 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我 ...

  6. 如何自学python数据分析-Python学习干货 |如何用Python进行数据分析?

    为什么选择Python进行数据分析? Python是一门动态的.面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言.Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读 ...

  7. 词云python灿烈_如何用Python做中文词云?

    打算绘制中文词云图?那你得先学会如何做中文文本分词.跟着我们的教程,一步步用Python来动手实践吧. 需求 在<如何用Python做词云>一文中,我们介绍了英文文本的词云制作方法.大家玩 ...

  8. python怎么用excel-如何用python打开excel

    最近看到好几次群里有人问xlwt.wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用of ...

  9. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!! 但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用 ...

最新文章

  1. Java DecimalFormat 用法 小数位的处理 公司内部处理小数位
  2. 伪造服务钓鱼工具Ghost Phisher
  3. 知识体系地图模型:你是如何有效地学习?
  4. 怎么用python实现回归_Python使用sklearn实现的各种回归算法示例
  5. Leetcode惊现马化腾每天刷题?为啥大佬都这么努力?代码你打算写到几岁?
  6. 链表之单、双链表反序
  7. unity常连接mysql,Unity使用BestHttp插件时Socket.IO保持长连接的问题
  8. office365安装文件_Microsoft 365(原Office 365)离线下载安装教程
  9. SOA学习笔记001---SOA 服务架构之简介及理解
  10. 跨域通信——多窗口通信
  11. 双摄像头做slsm_刚刚考完!真实双机位复试经验帮你避雷!
  12. 【CVPR2020】Designing Network Design Spaces
  13. 如何推动数字经济新时代产业转型升级
  14. 架构——20——Jenkins+Gitlab实现持续集成——3
  15. 古典音乐CD购买经验谈
  16. mapDispatchToProps
  17. mysql是什么数据库
  18. 【人工智能】大脑传:人类大脑认识发展史
  19. 数据分析案例-旅游景点票价预测
  20. 21-CSS中的3D属性

热门文章

  1. 登上软件开发的和谐号
  2. 百分点内存数据库架构演变
  3. flask Blueprint蓝图
  4. 分享文章《控制情绪,享受人生》
  5. 设计Optaplanner下实时规划服务的失败经历
  6. mac 安装 nodeJsnpm 配置
  7. 完美解决:"library not found for - "
  8. Query Specific Fusion for Image Retrival 学习日常
  9. 【java的多态性】
  10. 写了个数字转换为中文大写的软件