Python爬虫-数据处理与存储(一)

简介: Python爬虫-数据处理与存储(一)

Python爬虫-数据处理与存储
数据处理
可以使用pandas模块来实现数据处理,pandas是一个开源的并且通过BSD许可的库。它主要为Python语言提供高性能、易于使用数据结构和数据分析工具,此外还提供了多种数据操作和数据处理方法。由于pandas是第三方模块所以在使用前需要安装并导入该模块。

pandas 数据结构
pandas的数据结构中有两大核心,分别是Series与DataFrame。 其中Series是一维数组,它与Python中基本数据结构List相近。Series可以保存多种数据类型的数据,如布尔值、字符串、数字类型等。DataFrame是一种表格形式的数据结构,类似于Excel表格,是一种二维的表格型数据结构。

1.Series对象
§ 创建Series对象

在创建Series对象时,只需要将数组形式的数据传入Series()构造函数中即可。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 7:30 PM
# 文件      :Series对象.py
# IDE      :PyCharm

# 导入pandas模块
import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']

# 创建Series对象
series = pd.Series(data)
# 输出Series对象内容
print(series)

程序运行结果如下:

0    A
1    B
2    C
dtype: object

Process finished with exit code 0

说 明

在上述程序的运行结果中,左侧数字列为索引列,右侧字母列为索引对应的元素。Series对象在没有指定索引时,将默认生成从0开始依次递增的索引值。

§ 在创建Series对象时,是可以指定索引名称的,例如指定索引项为a、b、c。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 7:48 PM
# 文件      :指定索引的Series对象.py
# IDE      :PyCharm

# 导入pandas模块
import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index )
# 输出指定索引的Series对象内容
print(series)

程序运行结果如下:

a    A
b    B
c    C
dtype: object

Process finished with exit code 0

§ 访问数据

在访问Series对象中的数据时,可以单独访问索引数组或者元素数组。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 7:52 PM
# 文件      :访问数据.py
# IDE      :PyCharm

# 导入pandas模块
import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index )
# 输出索引数组
print('索引数组为:', series.index)
# 打印元素数组
print('元素数组为:', series.values)

程序运行结果为:

索引数组为: Index(['a', 'b', 'c'], dtype='object')
元素数组为: ['A' 'B' 'C']

Process finished with exit code 0

当需要获取指定下标的数组元素时,可以直接通过“Series对象[下标]“的方式进行数组元素的获取,数组下标从0开始。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 7:57 PM
# 文件      :获取指定下标的数组元素.py
# IDE      :PyCharm

import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index )
# 输出指定下标的数组元素
print('指定下标的数组元素为:', series[1])
# 输出指定索引的数组元素
print('指定索引的数组元素为:', series['a'])

程序运行结果如下:

指定下标的数组元素为: B
指定索引的数组元素为: A

Process finished with exit code 0

当需要获取多个下标对应的Series对象时,可以指定下标范围,示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 8:03 PM
# 文件      :指定下标范围获取数据.py
# IDE      :PyCharm

import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index)
# 输出下标为012对应的Series对象
print('获取多个下标对应的Series对象:')
print(series[0:3])

程序运行结果如下:

获取多个下标对应的Series对象:
a    A
b    B
c    C
dtype: object

Process finished with exit code

除了通过指定下标范围的方式获取Series对象之外,还可以通过指定多个索引的方式获取Series对象。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 8:13 PM
# 文件      :指定多个索引方式获取Series对象.py
# IDE      :PyCharm

import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index)
# 输出索引a、b对应的Series对象
print('获取多个索引对应的Series对象:')
print(series[['a', 'b']])

程序运行结果如下:

获取多个索引对应的Series对象:
a    A
b    B
dtype: object

Process finished with exit code 0

§ 修改元素值

修改Series对象的元素值时,同样可以通过指定下标或者指定索引的方式来实现。示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 8:19 PM
# 文件      :修改Series对象的元素值.py
# IDE      :PyCharm

# 导入pandas模块
import pandas as pd

# 创建数据数组
data = ['A', 'B', 'C']
# 创建索引名称的数组
index = ['a', 'b', 'c']

# 创建指定索引的Series对象
series = pd.Series(data, index=index )

# 修改下标为0的元素值
series[0] = 'D'
print('修改下标为0的元素值:\n')
print(series)

# 修改索引为b的原素值
series['b'] = 'A'
print('修改索引为b的元素值:')
# 打印修改元素值以后的Series对象
print(series)

程序运行结果如为:

修改下标为0的元素值:

a    D
b    B
c    C
dtype: object
修改索引为b的元素值:
a    D
b    A
c    C
dtype: object

Process finished with exit code 0
  1. DataFrame对象
    在创建DataFrame对象时,需要通过字典来实现。其中每列的名称为键,而每个键对应的是一个数组,这个数组作为值。示例代码如下:
#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 10:09 PM
# 文件      :DataFrame对象.py
# IDE      :PyCharm

# 导入pandas模块
import pandas as pd

data = {
   'A':[1, 2, 3, 4, 5],
        'B':[6, 7, 8, 9, 10],
        'C':[11, 12, 13, 14, 15]}
# 创建DataFrame对象
data_frame = pd.DataFrame(data)
# 输出DataFrame对象内容
print(data_frame)

程序运行结果如下:

A   B   C
0  1   6  11
1  2   7  12
2  3   8  13
3  4   9  14
4  5  10  15

Process finished with exit code 0

说 明

上面运行结果中看到,左侧单独的数字(0-4)为索引列,在没有指定特定的索引时,DataFrame对象默认的索引将从0开始递增。右侧A、B、C列名为键,列名对应的值为数组。

DataFrame对象同样可以单独指定索引名称,指定方式与Series对象类似,示例代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 10:29 PM
# 文件      :单独指定索引名称.py
# IDE      :PyCharm

import pandas as pd

data = {
   'A':[1, 2, 3, 4, 5],
        'B':[6, 7, 8, 9, 10],
        'C':[11, 12, 13, 14, 15]}
# 自定义索引
index = ['a', 'b', 'c', 'd', 'e']

# 创建自定义索引DataFrame对象
data_frame = pd.DataFrame(data, index = index)
# 输出DataFrame对象内容
print(data_frame)

程序运行结果如下:

A   B   C
a  1   6  11
b  2   7  12
c  3   8  13
d  4   9  14
e  5  10  15

Process finished with exit code 0

如果数据中含有不需要的数据列时,可以在创建DataFrame对象时指定需要的数据列名。示例代码如如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/13/22 10:33 PM
# 文件      :指定需要的数据列名.py
# IDE      :PyCharm

import pandas as pd

data = {
   'A':[1, 2, 3, 4, 5],
        'B':[6, 7, 8, 9, 10],
        'C':[11, 12, 13, 14, 15]}

# 创建指定列名的DataFrame对象
data_frame = pd.DataFrame(data, columns=['B', 'C'])
# 输出DataFrame对象内容
print(data_frame)

程序运行结果如下:

B   C
0   6  11
1   7  12
2   8  13
3   9  14
4  10  15

Process finished with exit code 0

接下文 Python爬虫-数据处理与存储(二)
https://developer.aliyun.com/article/1617982

相关文章
|
3天前
|
数据采集 Web App开发 API
B站高清视频爬取:Python爬虫技术详解
B站高清视频爬取:Python爬虫技术详解
|
4天前
|
数据采集 JSON API
深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
本文介绍如何使用Python结合淘宝开放平台API获取指定店铺所有商品数据。首先需注册淘宝开放平台账号、创建应用并获取API密钥,申请接口权限。接着,通过构建请求、生成签名、调用接口(如`taobao.items.search`和`taobao.item.get`)及处理响应,实现数据抓取。代码示例展示了分页处理和错误处理方法,并强调了调用频率限制、数据安全等注意事项。此技能对开发者和数据分析师极具价值。
|
4天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
21天前
|
数据采集 存储 数据挖掘
深入剖析 Python 爬虫:淘宝商品详情数据抓取
深入剖析 Python 爬虫:淘宝商品详情数据抓取
|
24天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
4天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
4天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
5天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
5天前
|
消息中间件 分布式计算 并行计算
Python 高级编程与实战:构建分布式系统
本文深入探讨了 Python 中的分布式系统,介绍了 ZeroMQ、Celery 和 Dask 等工具的使用方法,并通过实战项目帮助读者掌握这些技术。ZeroMQ 是高性能异步消息库,支持多种通信模式;Celery 是分布式任务队列,支持异步任务执行;Dask 是并行计算库,适用于大规模数据处理。文章结合具体代码示例,帮助读者理解如何使用这些工具构建分布式系统。
|
6天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。

热门文章

最新文章

推荐镜像

更多