Jupyter AI

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

📅 发表日期: 2024年8月10日

分类: 📊Pandas 入门

👁️阅读: --

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

Pandas常用数据结构概览

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

  • Series
  • DataFrame

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

Series vs DataFrame

1.定义与结构

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

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

    输出:

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

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

    输出:

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

2. 数据访问与操作

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

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

    # 通过列名访问
    print(df['B'])   # 输出 B 列的数据
    
    # 选取特定的行
    print(df.iloc[1])  # 输出第二行的数据
    

3. 灵活性与用途

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

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

案例分析

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

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

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

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

# 创建学生成绩的 DataFrame
data = {
    '姓名': ['小明', '小红', '小刚'],
    '数学': [85, 90, 75],
    '英语': [78, 88, 80],
    '物理': [92, 85, 79]
}

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

输出:

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

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

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

输出:

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

总结

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

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