【愚公系列】《Python网络爬虫从入门到精通》027-初识Pandas和Series对象
【摘要】 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳...
标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
🚀前言
在数据分析的领域,Python凭借其强大的库和工具,成为了数据科学家的首选语言。其中,Pandas库以其高效、灵活的数据处理能力而备受欢迎。无论是数据清洗、分析还是可视化,Pandas都能提供强有力的支持。而在Pandas中,Series对象是一个重要的基础数据结构,它使得数据的操作变得更加简单和高效。
本文将带你初识Pandas库及其核心组件——Series对象。我们将探讨Series的基本概念、常用操作以及实际应用场景,帮助你快速上手这一强大的数据分析工具。
🚀一、初识Pandas和Series对象
🔎1.初识Pandas
Pandas 是一个基于NumPy构建的Python库,专为高效处理结构化数据设计。其核心功能包括数据清洗、转换、分析和可视化。
Pandas处理的数据类型
-
表格数据:类似SQL表或Excel表格的结构化数据。 -
时间序列:有序(固定频率)或无序的时间相关数据。 -
矩阵数据:带行列标签的二维数据。 -
任意观测/统计数据集:灵活支持多种数据格式。
核心数据结构
-
Series:一维带标签数组,可存储任意数据类型。 -
DataFrame:二维表格型数据结构,可视为多个Series的集合。
Pandas核心优势
-
处理缺失数据:自动识别 NaN
值,支持填充、删除等操作。 -
动态数据结构:支持动态增删行列( DataFrame
)。 -
数据对齐:自动按标签对齐数据,简化计算。 -
分组统计:强大的 groupby
功能,支持聚合、转换、过滤。 -
数据导入/导出:支持CSV、Excel、SQL、HDF5等格式。 -
时间序列处理:支持日期范围生成、频率转换、滑动窗口分析。
🔎2.Series对象
🦋2.1 图解Series
Series是带标签的一维数组,由 数据值(Values) 和 索引(Index) 组成。
示例:学生成绩表
-
Series特点: -
索引可自定义(默认从0开始)。 -
数据可为任意类型(整数、浮点数、字符串等)。
-
🦋2.2 创建Series对象
使用pd.Series()
方法创建Series:
import pandas as pd
# 默认索引(0,1,2)
s1 = pd.Series([88, 60, 75])
print(s1)
输出:
0 88
1 60
2 75
dtype: int64
🦋2.3 手动设置索引
通过index
参数自定义索引:
# 数值索引
s2 = pd.Series([88, 60, 75], index=[1, 2, 3])
# 字符串索引
s3 = pd.Series([88, 60, 75], index=['明日同学', '高同学', '七月流火'])
print(s3)
输出:
明日同学 88
高同学 60
七月流火 75
dtype: int64
🦋2.4 Series的索引方式
-
位置索引(从0开始):
print(s1[0]) # 输出: 88
注意:不支持负索引(如
s1[-1]
会报错)。 -
标签索引:
print(s3['明日同学']) # 输出: 88 print(s3[['明日同学', '七月流火']]) # 输出指定多个标签
-
切片索引:
-
标签切片(包头包尾):
输出:print(s3['明日同学':'七月流火'])
明日同学 88 高同学 60 七月流火 75
-
位置切片(包头不包尾):
输出:s4 = pd.Series([88, 60, 75, 34, 68]) print(s4[1:4])
1 60 2 75 3 34
-
🦋2.5 获取索引和值
print(s3.index) # 输出索引: Index(['明日同学', '高同学', '七月流火'], dtype='object')
print(s3.values) # 输出数据值: [88 60 75]
🔎3.示例代码整合
import pandas as pd
# 创建默认索引的Series
s1 = pd.Series([88, 60, 75])
print("默认索引Series:\n", s1)
# 自定义索引
s2 = pd.Series([88, 60, 75], index=[1, 2, 3])
s3 = pd.Series([88, 60, 75], index=['明日同学', '高同学', '七月流火'])
print("\n自定义索引Series:\n", s3)
# 索引操作
print("\n标签索引获取值:", s3['明日同学'])
print("标签切片:\n", s3['明日同学':'七月流火'])
print("位置切片:\n", s1[1:3])
# 获取索引和值
print("\nSeries索引:", s3.index.tolist())
print("Series数据值:", s3.values.tolist())
输出:
默认索引Series:
0 88
1 60
2 75
dtype: int64
自定义索引Series:
明日同学 88
高同学 60
七月流火 75
dtype: int64
标签索引获取值: 88
标签切片:
明日同学 88
高同学 60
七月流火 75
dtype: int64
位置切片:
1 60
2 75
dtype: int64
Series索引: ['明日同学', '高同学', '七月流火']
Series数据值: [88, 60, 75]
🔎4.注意事项
-
索引长度匹配: data
与index
长度必须一致,否则报错。 -
中文字符处理:在代码中使用中文索引时,确保文件编码为UTF-8。 -
数据类型:Series会自动推断数据类型(如 int64
),可通过dtype
属性查看。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)