【Pandas】Series:一维数据结构

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值