Pandas 中的 Series
Series 是 Pandas 提供的 一维数据结构,类似于 Python 的列表(list)、NumPy 的一维数组(numpy array),但具有更强大的功能。每个 Series 由两个部分组成:
- 数据(values):存储实际数据,可以是整数、浮点数、字符串、布尔值等。
- 索引(index):用于标识每个数据值的标签,默认是从
0开始的整数索引,也可以自定义索引。
1. 创建 Series
1.1 通过列表创建
import pandas as pd
data = [10, 20, 30, 40]
s = pd.Series(data)
print(s)
输出:
0 10
1 20
2 30
3 40
dtype: int64
- 索引 默认从
0开始,依次递增。 - 数据类型 由 Pandas 自动推断(这里是
int64)。
1.2 自定义索引
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
输出:
a 10
b 20
c 30
d 40
dtype: int64
- 索引 现在变成了
a, b, c, d,可以用于数据访问。
1.3 通过字典创建
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
print(s)
输出:
a 10
b 20
c 30
dtype: int64
- 键(key) 作为 Series 的索引。
- 值(value) 作为 Series 的数据。
1.4 通过 NumPy 数组创建
import numpy as np
data = np.array([1, 2, 3, 4])
s = pd.Series(data, index=['A', 'B', 'C', 'D'])
print(s)
输出:
A 1
B 2
C 3
D 4
dtype: int64
- Series 兼容 NumPy,可用于科学计算。
2. 访问 Series 数据
2.1 通过索引访问
print(s['A']) # 访问索引为 'A' 的值
输出:
1
print(s[0]) # 访问第一个值
输出:
1
2.2 访问多个值
print(s[['A', 'C']]) # 取出索引 'A' 和 'C' 对应的数据
输出:
A 1
C 3
dtype: int64
print(s[0:2]) # 取出前两个数据
输出:
A 1
B 2
dtype: int64
2.3 使用布尔索引筛选数据
print(s[s > 2]) # 取出大于 2 的值
输出:
C 3
D 4
dtype: int64
3. Series 的基本属性
print(s.index) # 获取索引
print(s.values) # 获取数据
print(s.dtype) # 数据类型
print(s.size) # 数据个数
print(s.shape) # 形状(元素数量,)
4. Series 的常见操作
4.1 计算统计值
print(s.sum()) # 求和
print(s.mean()) # 求均值
print(s.max()) # 最大值
print(s.min()) # 最小值
print(s.std()) # 标准差
4.2 计算累加和累乘
print(s.cumsum()) # 累加和
print(s.cumprod()) # 累乘积
4.3 处理缺失值
s = pd.Series([1, 2, None, 4])
print(s.isna()) # 检查缺失值
print(s.fillna(0)) # 用 0 填充缺失值
print(s.dropna()) # 删除缺失值
4.4 Series 与标量计算
print(s * 2) # 所有值乘 2
print(s + 5) # 所有值加 5
print(s / 2) # 除以 2
4.5 Series 之间的运算
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
print(s1 + s2) # Series 按索引对齐,缺失值填 NaN
输出:
a NaN
b 6.0
c 8.0
d NaN
dtype: float64
- 自动按索引对齐,不存在的索引结果为
NaN。
5. Series 转换为其他数据结构
5.1 转换为字典
print(s.to_dict()) # 转换为字典
5.2 转换为 NumPy 数组
print(s.to_numpy()) # 转换为 NumPy 数组
6. Series 与 DataFrame 的关系
- Series 是 DataFrame 的列
df = pd.DataFrame({'Age': pd.Series([25, 30, 35]),
'Salary': pd.Series([50000, 60000, 70000])})
print(df)
- DataFrame 的一列是 Series
print(df['Age']) # 返回一个 Series
总结
- Series 是 Pandas 的一维数据结构,可以存储各种数据类型。
- 支持索引(默认整数索引或自定义索引),便于数据操作。
- Series 兼容 NumPy,可以进行数学运算、统计计算。
- 可用于数据筛选、缺失值处理、数据转换等。
- Series 是 DataFrame 的基础,DataFrame 的每一列本质上是一个 Series。
2391

被折叠的 条评论
为什么被折叠?



