pandas 数据结构之Series的使用方法

  • Post category:Python

下面是关于“Pandas数据结构之Series的使用方法”的完整攻略。

什么是Series

在Pandas中,Series是一种一维的数据结构,由一组数据和一组与之相关的标签(即索引)组成。Series将一组数据和它们的标签进行了绑定,方便按照标签进行数据查找和筛选,适用于处理时间序列、统计数据等场景。

Series的创建

我们可以通过多种方式创建Series,包括:

从列表或numpy数组创建

可以使用pd.Series()方法根据列表或numpy数组创建Series,具体如下:

import pandas as pd
import numpy as np

data = [1, 3, 5, np.nan, 6, 8]
s = pd.Series(data)
print(s)

输出结果:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

从字典创建

也可以使用字典创建Series,其中字典的键将变为Series的索引,而字典的值则变成了Series的数据,具体如下:

data = {'a': 0., 'b': 1., 'c': 2.}
s = pd.Series(data)
print(s)

输出结果:

a    0.0
b    1.0
c    2.0
dtype: float64

Series的属性

Series具有多个属性可以进行查询,包括:

values

获取Series对象的值,返回一个numpy数组,具体如下:

print(s.values)

输出结果:

[0. 1. 2.]

index

获取Series对象的索引,返回一个pandas.Index对象,具体如下:

print(s.index)

输出结果:

Index(['a', 'b', 'c'], dtype='object')

dtype

返回Series对象的数据类型,具体如下:

print(s.dtype)

输出结果:

float64

Series的基本操作

我们可以对Series进行多种操作,包括索引、切片、运算等。

索引

我们可以通过索引来获取Series数据,索引可以是标签名称、标签位置或标签的范围等,具体如下:

# 根据标签名称获取数据
print(s['a'])

# 根据标签位置获取数据
print(s[1])

# 根据标签范围获取数据
print(s['b':'c'])

输出结果:

0.0
1.0
b    1.0
c    2.0
dtype: float64

切片

我们可以从Series中选取部分数据进行切片操作,具体如下:

print(s[:2])

输出结果:

a    0.0
b    1.0
dtype: float64

运算

我们可以对Series进行多种元素级运算,包括加、减、乘、除等,具体如下:

print(s + s)

输出结果:

a    0.0
b    2.0
c    4.0
dtype: float64

示例

下面通过两个示例来说明Series的使用。

示例一

假设我们有如下一条学生的成绩数据:

学科 数学 语文 英语 政治
成绩 80 85 90 95

我们可以将这个数据转换成Series,代码如下:

data = {'数学': 80, '语文': 85, '英语': 90, '政治': 95}
s = pd.Series(data)
print(s)

输出结果:

数学    80
语文    85
英语    90
政治    95
dtype: int64

上述代码将学科作为索引,将成绩作为数据,利用Series的优势将成绩数据和学科名称绑定在了一起。

示例二

假设我们在某个电商网站中抓取了某个商品的销售数据,现在需要将销售数据转换成时间序列,并查看一天中不同时段的销售情况。我们可以将一部分销售数据截取出来,代码如下:

dates = pd.date_range('20220101', periods=24, freq='H')
data = [10, 9, 7, 6, 9, 12, 20, 25, 30, 50, 65, 80, 90, 85, 70, 50, 30, 20, 18, 15, 14, 12, 11, 10]
s = pd.Series(data, index=dates)
print(s)

输出结果:

2022-01-01 00:00:00    10
2022-01-01 01:00:00     9
2022-01-01 02:00:00     7
2022-01-01 03:00:00     6
2022-01-01 04:00:00     9
2022-01-01 05:00:00    12
2022-01-01 06:00:00    20
2022-01-01 07:00:00    25
2022-01-01 08:00:00    30
2022-01-01 09:00:00    50
2022-01-01 10:00:00    65
2022-01-01 11:00:00    80
2022-01-01 12:00:00    90
2022-01-01 13:00:00    85
2022-01-01 14:00:00    70
2022-01-01 15:00:00    50
2022-01-01 16:00:00    30
2022-01-01 17:00:00    20
2022-01-01 18:00:00    18
2022-01-01 19:00:00    15
2022-01-01 20:00:00    14
2022-01-01 21:00:00    12
2022-01-01 22:00:00    11
2022-01-01 23:00:00    10
Freq: H, dtype: int64

上述代码将每个小时的销售数据作为数据,将每个小时的时间作为索引,将一个不连续的时间序列转换成了Series,并可以方便地进行时间序列相关的查询和计算。

以上就是关于“Pandas数据结构之Series的使用方法”的详细攻略,希望对您有所帮助。