下面是关于“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的使用方法”的详细攻略,希望对您有所帮助。