Python Pandas - 数据结构介绍



Python Pandas 数据结构

Pandas 中的数据结构旨在高效地处理数据。它们允许以优化内存使用和计算性能的方式组织、存储和修改数据。Python Pandas 库提供两种主要的数据结构用于处理和分析数据:

  • Series (序列)
  • DataFrame (数据框)

在一般的编程中,“数据结构”是指收集、组织和存储数据以实现高效访问和修改的方法。数据结构是数据类型的集合,它们提供以内存使用率为标准组织项目(值)的最佳方式。

Pandas 建立在 NumPy 之上,并与许多其他第三方库很好地集成在科学计算环境中。本教程将详细介绍这些数据结构。

Pandas 数据结构的维度和描述

数据结构 维度 描述
Series (序列) 1 一维带标签的同质数组,大小不可变。
数据框 (Data Frames) 2 二维带标签的、大小可变的表格结构,列的类型可能不同。

使用两个或多个维度的数组可能很复杂且耗时,因为用户在编写函数时需要仔细考虑数据的方向。但是,Pandas 通过减少所需的心智负担简化了此过程。例如,当处理表格数据 (DataFrame) 时,更容易从行和列的角度思考,而不是从轴 0 和轴 1 的角度思考。

Pandas 数据结构的可变性

所有 Pandas 数据结构都是值可变的,这意味着它们的内容可以更改。但是,它们的大小可变性各不相同:

  • Series (序列) - 大小不可变。
  • DataFrame (数据框) - 大小可变。

Series (序列)

Series 是一维带标签的数组,可以保存任何数据类型。它可以存储整数、字符串、浮点数等。Series 中的每个值都与一个标签(索引)相关联,该标签可以是整数或字符串。

姓名 史蒂夫
年龄 35
性别
评分 3.5

示例

考虑以下 Series,它是一组不同数据类型的集合

import pandas as pd

data = ['Steve', '35', 'Male', '3.5']
series = pd.Series(data, index=['Name', 'Age', 'Gender', 'Rating'])
print(series)

执行上述程序后,您将获得以下输出

Name      Steve
Age          35
Gender     Male
Rating      3.5
dtype: object

关键点

以下是与 Pandas Series 相关的关键点。

  • 同质数据
  • 大小不可变
  • 数据值可变

DataFrame (数据框)

DataFrame 是一个二维带标签的数据结构,其列可以包含不同类型的数据。它类似于数据库中的表或电子表格。考虑以下数据,它表示销售团队的绩效评分:

姓名 年龄 性别 评分
史蒂夫 32 3.45
莉亚 28 4.6
45 3.9
凯蒂 38 2.78

示例

上述表格数据可以用 DataFrame 表示如下:

import pandas as pd

# Data represented as a dictionary
data = {
    'Name': ['Steve', 'Lia', 'Vin', 'Katie'],
    'Age': [32, 28, 45, 38],
    'Gender': ['Male', 'Female', 'Male', 'Female'],
    'Rating': [3.45, 4.6, 3.9, 2.78]
}

# Creating the DataFrame
df = pd.DataFrame(data)

# Display the DataFrame
print(df)

输出

执行上述代码后,您将获得以下输出:

    Name  Age  Gender  Rating
0  Steve   32    Male    3.45
1    Lia   28  Female    4.60
2    Vin   45    Male    3.90
3  Katie   38  Female    2.78

关键点

以下是与 Pandas DataFrame 相关的关键点:

  • 异质数据
  • 大小可变
  • 数据可变

使用多个数据结构的目的

Pandas 数据结构是低维数据的灵活容器。例如,DataFrame 是 Series 的容器,Series 是标量的容器。这种灵活性允许高效的数据操作和存储。

构建和处理多维数组可能会很枯燥,并且在编写函数时需要仔细考虑数据的方向。Pandas 通过提供直观的数据结构来减少这种心智负担。

示例

下面的例子表示 DataFrame 中的一个 Series。

import pandas as pd

# Data represented as a dictionary
data = {
    'Name': ['Steve', 'Lia', 'Vin', 'Katie'],
    'Age': [32, 28, 45, 38],
    'Gender': ['Male', 'Female', 'Male', 'Female'],
    'Rating': [3.45, 4.6, 3.9, 2.78]
}

# Creating the DataFrame
df = pd.DataFrame(data)

# Display a Series within a DataFrame
print(df['Name'])

输出

执行上述代码后,您将获得以下输出:

0    Steve
1      Lia
2      Vin
3    Katie
Name: Name, dtype: object
广告