6 Pandas数据结构之常用数据结构的对比
在上一篇中,我们讨论了两种核心的数据结构:Series
和 DataFrame
。本篇将进一步对 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
的设计使得数据分析和操作更加灵活,支持多种数据类型。
案例分析
我们以一个简单的案例来理解 Series
和 DataFrame
之间的特性。
假设我们有一个学生成绩的数据表:
姓名 | 数学 | 英语 | 物理 |
---|---|---|---|
小明 | 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 中 Series
与 DataFrame
的差异与用途。Series
适合于一维数据处理,而 DataFrame
则更适合于复杂的结构化数据分析。理解这些数据结构的特性,将为您在数据处理上的进一步工作打下坚实的基础。
在下一篇中,我们将深入探讨 Pandas 的数据导入与导出功能,从而使您能够从不同的数据源读取和保存数据。希望您能继续关注我们接下来的学习内容!