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

相关文章
|
14天前
|
数据采集 JSON 数据格式
Python爬虫:京东商品评论内容
京东商品评论接口为商家和消费者提供了重要工具。商家可分析评论优化产品,消费者则依赖评论做出购买决策。该接口通过HTTP请求获取评论内容、时间、点赞数等数据,支持分页和筛选好评、中评、差评。Python示例代码展示了如何调用接口并处理返回的JSON数据。应用场景包括产品优化、消费者决策辅助、市场竞争分析及舆情监测。
|
16天前
|
SQL 分布式计算 数据处理
云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理
本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!
39 1
|
25天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
64 3
|
1月前
|
人工智能 分布式计算 数据处理
有奖评测,基于分布式 Python 计算服务 MaxFrame 进行数据处理
阿里云MaxCompute MaxFrame推出分布式Python计算服务MaxFrame评测活动,助力开发者高效完成大规模数据处理、可视化探索及ML/AI开发。活动时间为2024年12月17日至2025年1月31日,参与者需体验MaxFrame并发布评测文章,有机会赢取精美礼品。
|
2月前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
2月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
3月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
163 6
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
294 4
|
7月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
111 4
|
6月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。

热门文章

最新文章