零基础上手Python数据分析 (8):Pandas 核心数据结构 Series 和 DataFrame

我们已经完成了 Python 编程基础的入门,掌握了 Python 语法、数据类型、数据结构、文件操作和异常处理等核心知识。 从今天开始,我们将正式踏入 Python 数据分析的核心领域,学习 Pandas 库!

Pandas:Python 数据分析的 “瑞士军刀”

Pandas 是 Python 数据分析领域 最核心、最基础、最强大 的库,没有之一! 它提供了高性能、易于使用的数据结构和数据分析工具,使得 Python 成为数据分析的强大武器。 Pandas 的地位,就如同 Excel 在电子表格软件中的地位,但 Pandas 的功能远比 Excel 强大和灵活。

为什么要学习 Pandas?

  • 高效的数据处理能力: Pandas 提供了高性能的数据结构 Series (序列)DataFrame (数据框),可以高效地处理各种类型的数据,包括数值型、字符串型、时间序列型等。 Pandas 底层使用 C 语言编写的 NumPy 库,性能非常出色,处理大规模数据也游刃有余。
  • 强大的数据清洗和预处理功能: Pandas 提供了丰富的数据清洗和预处理工具,例如处理缺失值、重复值、异常值、数据转换、数据合并、数据分组等,让你轻松应对各种数据质量问题,为后续的数据分析打下坚实的基础。
  • 灵活的数据分析和探索功能: Pandas 提供了强大的数据分析和探索功能,例如数据筛选、排序、统计计算、分组聚合、透视表、时间序列分析等,让你能够从不同维度分析和挖掘数据,发现数据中的规律和 insights。
  • 便捷的数据导入导出功能: Pandas 可以轻松地从各种数据源 (例如 CSV 文件、Excel 文件、文本文件、SQL 数据库、JSON 文件、HTML 网页等) 导入数据,并将数据导出到各种格式的文件,实现数据的高效流通。
  • 与 Python 生态系统无缝集成: Pandas 与 Python 的其他数据科学库 (例如 NumPy, Matplotlib, Seaborn, Scikit-learn 等) 无缝集成,可以方便地进行数据分析、可视化和机器学习,构建完整的数据科学工作流。
  • 简单易学,上手快速: Pandas 的 API 设计简洁直观,易于学习和使用,即使是零基础的初学者,也能快速上手,并用 Pandas 解决实际的数据分析问题。

Pandas 核心数据结构:Series 和 DataFrame

Pandas 最核心的数据结构就是 Series (序列)DataFrame (数据框)。 理解和掌握 Series 和 DataFrame 是学习 Pandas 的关键,也是进行数据分析的基础。

  • Series (序列): 类似于 一维数组带标签的列表,由 索引 (Index)值 (Values) 两部分组成。 Series 可以用来表示 一列数据,例如 Excel 表格中的一列、数据库表中的一列、时间序列数据等。
  • DataFrame (数据框): 类似于 二维表格带标签的电子表格,由 行索引 (Index)列索引 (Columns)数据 (Values) 三部分组成。 DataFrame 可以用来表示 多行多列的表格数据,例如 Excel 表格、CSV 文件、数据库表等。 DataFrame 是 Pandas 最核心、最常用的数据结构,也是数据分析中最常用的数据组织形式。

本篇博客将重点讲解 Pandas 的核心数据结构 Series 和 DataFrame,让你掌握 Pandas 数据分析的基石,为后续学习 Pandas 的数据处理和分析功能做好充分准备。

📊 一、Pandas Series:一维带标签数据

Series (序列) 是 Pandas 的 一维数据结构,它由 索引 (Index)值 (Values) 两部分组成。 Series 可以看作是 带标签的 NumPy 数组带索引的列表,但功能更加强大和灵活。 Series 非常适合表示 一维时间序列数据单列数据 等。

1. Series 的创建

可以使用多种方式创建 Series 对象:

  • 从列表 (List) 创建 Series:

    import pandas as pd # 导入 pandas 库,约定俗成简写为 pd
    
    data = [10, 20, 30, 40, 50]
    s = pd.Series(data) # 从列表 data 创建 Series 对象 s
    print(s)
    

    输出:

    0    10
    1    20
    2    30
    3    40
    4    50
    dtype: int64
    

    代码解释:

    • import pandas as pd: 导入 Pandas 库,并约定俗成地使用 pd 作为 Pandas 的别名,方便后续代码中使用 pd.Series 等 Pandas 函数和对象。
    • data = [10, 20, 30, 40, 50]: 定义一个 Python 列表 data,作为 Series 的数据部分。
    • s = pd.Series(data): 使用 pd.Series(data) 函数 从列表 data 创建一个 Series 对象 s
    • print(s): 打印 Series 对象 s

    输出结果解释:

    • 左侧 0, 1, 2, 3, 4 是 Series 的索引 (Index),默认情况下,Pandas 会自动创建 从 0 开始的整数索引
    • 右侧 10, 20, 30, 40, 50 是 Series 的值 (Values),即列表 data 中的元素。
    • dtype: int64 表示 Series 的数据类型 (data type) 是 64 位整数 (int64)。 Pandas 会自动推断 Series 的数据类型,也可以在创建 Series 时手动指定数据类型 (例如 dtype='float64', dtype='str' 等)。
  • 从 NumPy 数组 (Array) 创建 Series:

    import pandas as pd
    import numpy as np # 导入 NumPy 库
    
    data = np.array([10, 20, 30, 40, 50]) # 创建 NumPy 数组
    s = pd.Series(data) # 从 NumPy 数组 data 创建 Series 对象 s
    print(s)
    

    输出结果与从列表创建 Series 相同。 Pandas Series 可以很好地与 NumPy 数组集成。

  • 从字典 (Dictionary) 创建 Series:

    import pandas as pd
    
    data = {
         'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50} # 创建字典
    s = pd.Series(data) # 从字典 data 创建 Series 对象 s
    print(s)
    

    输出:

    a    10
    b    20
    c    30
    d    40
    e    50
    dtype: int64
    

    代码解释:

    • data = {'a': 10, 'b': 20, 'c': 30, 'd': 40, 'e': 50}: 创建一个 Python 字典 data字典的键 (keys) 将作为 Series 的索引 (Index),字典的值 (values) 将作为 Series 的值 (Values)
    • s = pd.Series(data): 使用 pd.Series(data) 函数 从字典 data 创建 Series 对象 s

    输出结果解释:

    • 左侧 a, b, c, d, e 是 Series 的索引 (Index),即字典 data 的键。 使用字典创建 Series 时,索引会自动使用字典的键。
    • 右侧 10, 20, 30, 40, 50 是 Series 的值 (Values),即字典 data 的值。
  • 指定索引 (Index) 创建 Series:

    在从列表或 NumPy 数组创建 Series 时,可以 手动指定索引 (Index)。 索引可以是 任意类型 的数据 (例如字符串、日期时间等),但通常建议使用 唯一且有意义 的索引,方便数据访问和操作。

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    index = ['A', 'B', 'C', 'D', 'E'] # 自定义索引列表
    s = pd.Series(data, index=index) # 创建 Series 对象 s,并指定索引
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kakaZhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值