手把手教你用Pandas读取所有主流数据存储

人工智能42

导读:从常见的Excel和CSV到JSON及各种数据库,Pandas几乎支持市面上所有的主流数据存储形式。

作者:李庆辉

来源:大数据DT(ID:hzdashuju)

手把手教你用Pandas读取所有主流数据存储

Pandas提供了一组顶层的I/O API,如pandas.read_csv()等方法,这些方法可以将众多格式的数据读取到DataFrame数据结构中,经过分析处理后,再通过类似DataFrame.to_csv()的方法导出数据。

表3-1列出了一些常见的数据格式读取和输出方法。

▼表3-1 Pandas中常见数据的读取和输出函数

手把手教你用Pandas读取所有主流数据存储

输入和输出的方法如下:

  • 读取函数一般会赋值给一个变量df,df = pd.read_
  • 输出函数是将变量自身进行操作并输出df.to_

01 CSV文件

CSV(Comma-Separated Values)是用逗号分隔值的数据形式,有时也称为字符分隔值,因为分隔字符也可以不是逗号。CSV文件的一般文件扩展名为.csv,用制表符号分隔也常用.tsv作为扩展名。CSV不仅可以是一个实体文件,还可以是字符形式,以便于在网络上传输。

CSV文件的读取方法如下(以下代码省略了赋值操作):

# 文件目录
pd.read_csv('data.csv') # 如果文件与代码文件在同一目录下
pd.read_csv('data/my/data.csv') # 指定目录
pd.read_csv('data/my/my.data') # CSV文件的扩展名不一定是.csv
CSV文件可以存储在网络上,通过URL来访问和读取:
# 使用URL
pd.read_csv('https://www.gairuo.com/file/data/dataset/GDP-China.csv')

CSV不带数据样式,标准化较强,是最为常见的数据格式。 Pandas为读取CSV数据提供了强大的功能,了解更多详细操作请阅读《》。

02 Excel

Excel电子表格是微软公司开发的被广泛使用的电子数据表格软件,一般可以将它的使用分为两类。一类是文字或者信息的结构化,像排班表、工作日报、客户名单之类,以文字为主;另一类为统计报表,如学生成绩表、销售表等,以数字为核心。

Pandas主要处理统计报表,当然也可以对文字信息类表格做整理,在新版本的Pandas中加入了非常强大的文本处理功能。

Excel虽然易于上手,功能也很强大,但在数据分析中 缺点也很明显。

  • 无法进行复杂的处理:有时Excel提供的函数和处理方法无法满足复杂逻辑。
  • 无法支持更大的数据量:目前Excel支持的行数上限为1 048 576(2的20次方),列数上限为16 384(2的14次方,列标签为XFD),在数据分析、机器学习操作中往往会超过这个体量。
  • 处理方法无法复用:Excel一般采用设定格式的公式,然后将数据再复制,但这样仍然无法对数据的处理过程进行灵活复用。
  • 无法自动化:数据分析要经过一个数据输入、处理、分析和输出的过程,这些都是由人工来进行操作,无法实现自动化。

Pandas可以读取、处理大体量的数据,通过技术手段,理论上Pandas可以处理的数据体量无限大。编程可以更加自由地实现复杂的逻辑,逻辑代码可以进行封装、重复使用并可实现自动化。

Pandas也提供了非常丰富的读取操作,这些在《》有详细介绍。最基础的读取方法如下:

# 返回DataFrame
pd.read_excel('team.xlsx') # 默认读取第一个标签页Sheet
pd.read_excel('path_to_file.xlsx', sheet_name='Sheet1') # 指定Sheet
# 从URL读取
pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')

03 JSON

JSON是互联网上非常通用的轻量级数据交换格式,是HTTP请求中数据的标准格式之一。Pandas提供的JSON读取方法在解析网络爬虫数据时,可以极大地提高效率。可如下读取JSON文件:

# data.json为同目录下的一个文件
pd.read_json('data.json')
可以解析一个JSON字符串,以下是从HTTP服务检测到的设备信息:
jdata='{"res":{"model":"iPhone","browser":"Safari","version":"604.1"},"status":200}'
pd.read_json(jdata)
'''
            res  status
browser  Safari     200
model    iPhone     200
version   604.1     200
'''

Pandas还提供了pd.json_normalize(data)方法来读取半结构化的JSON数据。

04 HTML

pd.read_html()函数可以接受HTML字符串、HTML文件、URL,并将HTML中的

| |
标签表格数据解析为DataFrame。如返回有多个df的列表,则可以通过索引取第几个。如果页面里只有一个表格,那么这个列表就只有一个DataFrame。此方法是Pandas提供的一个简单实用的实现爬虫功能的方法。

dfs = pd.read_html('https://www.gairuo.com/p/pandas-io')
dfs[0] # 查看第一个df
# 读取网页文件,第一行为表头
dfs = pd.read_html('data.html', header=0)
# 第一列为索引
dfs = pd.read_html(url, index_col=0)

如果一个网页表格很多,可以指定元素来获取:

# id='table'的表格,注意这里仍然可能返回多个
dfs1 = pd.read_html(url, attrs={'id': 'table'})
# dfs1[0]
# class='sortable'
dfs2 = pd.read_html(url, attrs={'class': 'sortable'})

常用的参数与read_csv的基本相同。

05 剪贴板

剪贴板(Clipboard)是操作系统级的一个暂存数据的地方,它保存在内存中,可以在不同软件之间传递,非常方便。Pandas支持读取剪贴板中的结构化数据,这就意味着我们不用将数据保存成文件,而可以直接从网页、Excel等文件中复制,然后从操作系统的剪贴板中读取,非常方便。

'''
  x y z
a 1 2 3
b 4 5 6
c 7 8 9
'''

# 复制上边的数据,然后直接赋值
cdf = pd.read_clipboard()

变量cdf就是上述文本的DataFrame结构数据。read_clipboard的参数使用与read_csv完全一样。

06 SQL

Pandas需要引入SQLAlchemy库来支持SQL,在SQLAlchemy的支持下,它可以实现所有常见数据库类型的查询、更新等操作。Pandas连接数据库进行查询和更新的方法如下。

  • read_sql_table(table_name, con[, schema, ...]):把数据表里的数据转换成DataFrame。
  • read_sql_query(sql, con[, index_col, ...]):用sql查询数据到DataFrame中。
  • read_sql(sql, con[, index_col, ...]):同时支持上面两个功能。
  • DataFrame.to_sql(self, name, con[, schema, ...]):把记录数据写到数据库里。

以下是一些代码示例:

# 需要安装SQLAlchemy库
from sqlalchemy import create_engine
# 创建数据库对象,SQLite内存模式
engine = create_engine('sqlite:///:memory:')
# 取出表名为data的表数据
with engine.connect() as conn, conn.begin():
    data = pd.read_sql_table('data', conn)

# data
# 将数据写入
data.to_sql('data', engine)
# 大量写入
data.to_sql('data_chunked', engine, chunksize=1000)
# 使用SQL查询
pd.read_sql_query('SELECT * FROM data', engine)

07 小结

Pandas支持读取非常多的数据格式,本文仅介绍了几种常见的数据文件格式,更多格式可以在其官网查询。

https://pandas.pydata.org/docs/user_guide/io.html

关于作者:李庆辉,数据产品专家,某电商公司数据产品团队负责人,擅长通过数据治理、数据分析、数据化运营提升公司的数据应用水平。精通Python数据科学及Python Web开发,曾独立开发公司的自动化数据分析平台,参与教育部"1+X"数据分析(Python)职业技能等级标准评审。中国人工智能学会会员,企业数字化、数据产品和数据分析讲师,在个人网站"盖若"上编写的技术和产品教程广受欢迎。

本书摘编自《深入浅出Pandas:利用Python进行数据处理与分析》,机械工业出版社华章公司2021年出版。转载请与我们取得授权。

手把手教你用Pandas读取所有主流数据存储

延伸阅读《深入浅出Pandas》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:这是一本全面覆盖了Pandas使用者的普遍需求和痛点的著作,基于实用、易学的原则,从功能、使用、原理等多个维度对Pandas做了全方位的详细讲解,既是初学者系统学习Pandas难得的入门书,又是有经验的Python工程师案头必不可少的查询手册。《利用Python进行数据分析》学习伴侣,用好Python必备。

手把手教你用Pandas读取所有主流数据存储

刷刷视频👇

干货直达👇

更多精彩 👇

在公众号对话框输入以下 关键词

查看更多优质内容!

读书 | 书单 | 干货| 讲明白| 神操作 | 手把手

大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G| 中台| 用户画像| 数学| 算法| 数字孪生

据统计,99%的大咖都关注了这个公众号

👇

Original: https://blog.csdn.net/zw0Pi8G5C1x/article/details/123911086
Author: 大数据v
Title: 手把手教你用Pandas读取所有主流数据存储



相关阅读

Title: Tensorflow 2.9.1安装笔记

CPU:i7-4790k

显卡:GTX2060

Cuda 版本:11.3

Cunn版本: 11.6

Python版本:3.7.7

不想用anacoda,直接装 tensorflow

1.准备工作

  • 安装python3.7.7(之前安装好的)

可以根据需要安装相应的版本,不建议安装最新版,python版本之间的代码兼容度不好。3.6~3.8可能比较合适。

我安装的是11.3版本。

deviceQuery.exe 和 bandwithTest.exe测试通过。

  • 下载Tensorflow

我下载的是 tensorflow-2.9.1-cp37-cp37m-win_amd64.whl

  • 安装组件

安装Tensorflow之前,安装好以下支持模块

A.Numpy: pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

B.mkl: pip install mkl -i https://pypi.tuna.tsinghua.edu.cn/simple

C.protobuf pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple

2.安装Tensorflow

把 tensorflow-2.9.1-cp37-cp37m-win_amd64.whl 放到d盘根目录,打开命令行并转到D:\

pip install tensorflow-2.9.1-cp37-cp37m-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

这样在安装过程中加载其他模块的时候,速度会非常快。

3.测试

import tensorflow as tf
print("Tensorflow version:")
print(tf.__version__)

print("CPU/GPU devices for Tensorflow:")
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus)
print(cpus)

运行结果:

Tensorflow version:
2.9.1
CPU/GPU devices for Tensorflow:
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]

至此安装完毕。

IDE可以使用Visual Studio Code(小规模测试)

或者Pycharm(程序较大很方便)

Original: https://blog.csdn.net/st01lsp/article/details/125294794
Author: st01lsp
Title: Tensorflow 2.9.1安装笔记

相关文章
机器学习基础(Machine Learning,ML) 人工智能

机器学习基础(Machine Learning,ML)

什么是机器学习 机器学习是人工智能的一个子集,目前已经发展出许多有用的方法,比如支持向量机,回归,决策树,随机森林,强化方法,集成学习,深度学习等,一定程度上可以帮助人们完成一些数据预测,自动化,自动...
北大邹磊:图数据库中的子图匹配算法 人工智能

北大邹磊:图数据库中的子图匹配算法

导读:本次讲座从图数据库中的核心查询算子——子图匹配入题,介绍了图数据库的基本概念、子图匹配的算法,以及在图数据库环境下的子图匹配查询优化等内容。具体包括下面三个方面: 什么是图数据库 子图匹配查询及...
聚类算法介绍(欧氏距离和余弦距离) 人工智能

聚类算法介绍(欧氏距离和余弦距离)

1.聚类就是将数据集划分为若干相似对象组成的多个组或簇的过程,使得同一个组或簇相似度最大化,不同簇间相似度最小化。(有时候聚类可以评价相似性) 2.聚类的本质是分组,属于无监督机器学习(只需要特征X,...
度量学习和pytorch-metric-learning的使用 人工智能

度量学习和pytorch-metric-learning的使用

度量学习是学习一种特征空间的映射,把特征映射到具有度量属性的空间中,所谓度量属性是指在某种度量距离(可以是欧氏距离、余弦相似性等)下类内距离更小,类间距离更大。有了这种属性之后,就可以仅根据特征间的距...
手把手教你语音识别(三) 人工智能

手把手教你语音识别(三)

朋友们,手把手语音识别第三部分来了,这部分开始讲解网络搭建部分,同样是手把手教你哦,不要错过。 1、读入数据 这部分,就不展开讲了,之前的文章讲过:数据处理,这次直接从读入数据的格式到怼入网络开始讲,...