6 Pandas数据结构之常用数据结构的对比

在上一篇中,我们讨论了两种核心的数据结构:SeriesDataFrame。本篇将进一步对 Pandas 中常用的数据结构进行对比,帮助您更好地理解它们的特性和适用场景。随后,在下一篇中,我们将探讨数据处理的重要环节——数据的导入与导出。

Pandas常用数据结构概览

Pandas 主要提供了以下两种数据结构:

  • Series
  • DataFrame

在一些特定的场景中,Pandas 还提供了 Panel 结构,但由于其用途相对较少,本文将不作深入讨论。

Series vs DataFrame

1.定义与结构

  • Series: 是一种一维数组对象,可以容纳任意数据类型(整数、浮点数、字符串、Python 对象等)。每个 Series 都有一个与之相关的索引,可以自定义。

    1
    2
    3
    4
    5
    import pandas as pd

    # 创建一个 Series
    s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
    print(s)

    输出:

    1
    2
    3
    4
    5
    a    1
    b 2
    c 3
    d 4
    dtype: int64
  • DataFrame: 是一种二维的表格数据结构,它可以看作是多个 Series 的集合,每个 Series 代表一列,表中的每一行可以看作是一个观察值或数据记录。DataFrame 的每一列可以拥有不同的数据类型。

    1
    2
    3
    4
    5
    6
    7
    # 创建一个 DataFrame
    df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['X', 'Y', 'Z'],
    'C': [1.1, 2.2, 3.3]
    })
    print(df)

    输出:

    1
    2
    3
    4
       A  B    C
    0 1 X 1.1
    1 2 Y 2.2
    2 3 Z 3.3

2. 数据访问与操作

  • Series 中,可以通过标签或位置访问数据:

    1
    2
    3
    4
    5
    # 通过标签访问
    print(s['b']) # 输出 2

    # 通过位置访问
    print(s[2]) # 输出 3
  • DataFrame 中,数据访问可以通过列名和行索引进行:

    1
    2
    3
    4
    5
    # 通过列名访问
    print(df['B']) # 输出 B 列的数据

    # 选取特定的行
    print(df.iloc[1]) # 输出第二行的数据

3. 灵活性与用途

  • **Series**:适合用于处理一维数据,如单一变量的分析。无论是时间序列数据,还是简单的一维数组,Series 都非常方便。

  • **DataFrame**:适合用于处理二维数据,能够存储更复杂的数据结构。DataFrame 的设计使得数据分析和操作更加灵活,支持多种数据类型。

案例分析

我们以一个简单的案例来理解 SeriesDataFrame 之间的特性。

假设我们有一个学生成绩的数据表:

姓名 数学 英语 物理
小明 85 78 92
小红 90 88 85
小刚 75 80 79

我们可以利用 DataFrame 来存储这些数据:

1
2
3
4
5
6
7
8
9
10
# 创建学生成绩的 DataFrame
data = {
'姓名': ['小明', '小红', '小刚'],
'数学': [85, 90, 75],
'英语': [78, 88, 80],
'物理': [92, 85, 79]
}

df_scores = pd.DataFrame(data)
print(df_scores)

输出:

1
2
3
4
   姓名  数学  英语  物理
0 小明 85 78 92
1 小红 90 88 85
2 小刚 75 80 79

在此案例中,DataFrame 使我们能够以表格的形式管理和访问学生的成绩数据。我们可以轻松地进行各种数据分析,例如计算每个学生的平均成绩:

1
2
3
# 计算每个学生的平均成绩
df_scores['平均成绩'] = df_scores[['数学', '英语', '物理']].mean(axis=1)
print(df_scores)

输出:

1
2
3
4
   姓名  数学  英语  物理  平均成绩
0 小明 85 78 92 85.0
1 小红 90 88 85 87.67
2 小刚 75 80 79 78.0

总结

通过以上的对比与案例分析,我们了解了 Pandas 中 SeriesDataFrame 的差异与用途。Series 适合于一维数据处理,而 DataFrame 则更适合于复杂的结构化数据分析。理解这些数据结构的特性,将为您在数据处理上的进一步工作打下坚实的基础。

在下一篇中,我们将深入探讨 Pandas 的数据导入与导出功能,从而使您能够从不同的数据源读取和保存数据。希望您能继续关注我们接下来的学习内容!

6 Pandas数据结构之常用数据结构的对比

https://zglg.work/pandas-zero/6/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论