【愚公系列】《Python网络爬虫从入门到精通》027-初识Pandas和Series对象

举报
愚公搬代码 发表于 2025/05/01 00:08:25 2025/05/01
【摘要】 标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,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表格的结构化数据。
  • 时间序列:有序(固定频率)或无序的时间相关数据。
  • 矩阵数据:带行列标签的二维数据。
  • 任意观测/统计数据集:灵活支持多种数据格式。

核心数据结构

  1. Series:一维带标签数组,可存储任意数据类型。
  2. 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的索引方式

  1. 位置索引(从0开始):

    print(s1[0])  # 输出: 88
    

    注意:不支持负索引(如s1[-1]会报错)。

  2. 标签索引:

    print(s3['明日同学'])          # 输出: 88
    print(s3[['明日同学', '七月流火']])  # 输出指定多个标签
    
  3. 切片索引:

    • 标签切片(包头包尾):
      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.注意事项

  1. 索引长度匹配:dataindex长度必须一致,否则报错。
  2. 中文字符处理:在代码中使用中文索引时,确保文件编码为UTF-8。
  3. 数据类型:Series会自动推断数据类型(如int64),可通过dtype属性查看。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。