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

相关文章
|
2天前
|
SQL 关系型数据库 MySQL
Python爬虫-数据处理与存储(二)
Python爬虫-数据处理与存储(二)
|
2天前
|
数据采集 消息中间件 Python
Python爬虫-进程间通信
Python爬虫-进程间通信
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
117 4
|
2月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
3月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
74 4
|
6天前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
121 66
|
3月前
|
数据采集 存储 API
在信息时代,Python爬虫用于自动化网络数据采集,提高效率。
【7月更文挑战第5天】在信息时代,Python爬虫用于自动化网络数据采集,提高效率。基本概念包括发送HTTP请求、解析HTML、存储数据及异常处理。常用库有requests(发送请求)和BeautifulSoup(解析HTML)。基本流程:导入库,发送GET请求,解析网页提取数据,存储结果,并处理异常。应用案例涉及抓取新闻、商品信息等。
85 2
|
22天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
51 3
|
22天前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
47 1
|
1月前
|
数据采集 机器学习/深度学习 搜索推荐
Python爬虫技术基础与应用场景详解
本文介绍了爬虫技术的基本概念、原理及应用场景,包括数据收集、价格监测、竞品分析和搜索引擎优化等。通过一个实战案例展示了如何使用Python爬取电商网站的商品信息。强调了在使用爬虫技术时需遵守法律法规和道德规范,确保数据抓取的合法性和合规性。