Python_AI库 Pandas的数据结构及基本操作
本文默认读者具备以下技能:
- 熟悉python基础知识,vscode或其它编辑工具
- 熟悉表格文件的基本操作
- 具备自主扩展学习能力
本文篇幅较长,但比较重要,希望读者可以认真看完并实例运行。
Pandas提供了两种主要的数据结构,它们分别是Series、DataFrame,它们都是建立在Numpy数组之上,因此运行速度很快。以下是对这三种数据结构的详细介绍:
-
Series:
- 一维带标签的同质数组,大小不可变。
- 可以将标量值、字典、列表等作为输入数据来创建Series对象。
- Series有一个标签,用于标识每个数据点,可以看作是数据的一维表示。
-
DataFrame(最常用的数据结构,要重点了解):
- 通用的二维带标签的表格结构,其中列的类型可能不同,大小可变。
- 可以从字典、列表、数组等创建DataFrame。
- DataFrame有行索引(index)和列索引(columns),可以方便地进行数据的选取、切片和聚合等操作。
- DataFrame是Pandas的核心数据结构,非常适合存储和处理表格型数据。
-
Panel(因结构复杂,使用少,已弃用,这里仅作扩展介绍,避免读者看到较早以前的教程时不理解):
- 通用的三维带标签的数组,大小可变。
- Panel可以看作是多个DataFrame的容器,用于处理三维数据。
- 由于其复杂性,Panel在实际应用中较少使用,通常可以通过其他方式(如多层索引的DataFrame)来处理三维数据。
Series的基本操作:
- 创建Series:
import pandas as pd
# 使用列表创建Series
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)
# 使用NumPy数组创建Series
import numpy as np
s2 = pd.Series(np.arange(10))
print(s2)
# 使用字典创建Series,字典的键将作为索引,值将作为数据
data = {
'a': 1, 'b': 2, 'c': 3}
s3 = pd.Series(data)
print(s3)
- 访问与切片:
# 访问Series中的单个元素
print(s1[0]) # 使用位置索引访问第一个元素
print(s3['a']) # 使用标签索引访问键为'a'的元素
# 切片操作
sub_s1 = s1[1:4] # 访问第二个到第四个元素(不包含第四个)
print(sub_s1)
# 使用标签切片
sub_s3 = s3['a':'c'] # 访问键从'a'到'c'的元素(包含'a'和'c')
print(sub_s3)
- 索引操作:
# 查看Series的索引
print(s3.index)
# 重新设置Series的索引
s3.index = ['x', 'y', 'z']
print(s3)
- 数据操作:
# 对Series进行数学运算
s4 = s1 * 2 # 每个元素乘以2
print(s4)
# 对Series应用函数
s5 = s1.apply</