目录
前言
在Python的Pandas库中,Series是一种基本的数据结构,用于存储一维数组,并可以带有标签。利用pandas库从外部读取数据到python中形成的表格叫DataFrame表格对象,而Series序列对象就是DataFrame表格对象中的某一列数据。
Series序列对象在数据分析中非常有用,可以用于存储和处理单变量的数据集。它提供了许多方法和属性,用于执行各种数据操作和分析任务。
一、Series序列对象的获取
首先需要导入pandas库:
import pandas as pd
1.使用Series()函数
创建Series对象可以使用Pandas库中的Series函数。例如,以下代码创建一个包含整数1到6的Series对象:
a = pd.Series([1, 2, 3, 4, 5, 6])
输出结果如下:
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int64
2.利用DataFrame获取
DataFrame是一个二维的表格型数据结构,每个列都是一个Series对象。可以通过列名来获取DataFrame中的Series对象:
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
b = df['A'] # 获取名为'A'的列,即一个Series对象
输出结果如下:
0 1
1 2
2 3
Name: A, dtype: int64
二、Series序列对象的属性
Series序列对象具有多种属性,包括但不限于:
属性 | 含义 |
---|---|
values | 元素(值) |
index | 索引 |
name | 名称 |
dtypes | 元素类型 |
size | 元素个数 |
ndim | 维度数 |
shape | 数据形状(行列数目) |
下面是一个简单的示例代码,演示如何使用Pandas库中的Series对象的属性:
series = pd.Series([1,2,3,4,5]) #创建一个示例的Series对象
print(series.values) # 值
print(series.index) # 索引
print(series.name) # 名称
print(series.dtypes) # 数据类型
print(series.size) # 数据个数
print(series.ndim) # 维度数
print(series.shape) #数据形状(行列数目)
输出结果如下:
[1 2 3 4 5]
RangeIndex(start=0, stop=5, step=1)
None
int64
5
1
(5,)
在这个示例中,创建了一个包含整数1到5的Series对象,使用不同的属性来获取有关序列的信息,例如索引、形状、值、数据类型、以及元素个数。
三、Series序列对象的访问
1.通过位置索引访问
类似于列表的访问方式,使用元素的下标进行访问。
例如:
# 创建一个示例的Series对象
d = pd.Series([1, 2, 3, 4, 5])
# 使用位置索引访问元素
print(d[0])
print(d[3])
输出结果如下:
1
4
在这个示例中,d[0]访问序列中的第一个元素,d[3]访问序列中的第四个元素。
2.通过标签索引访问
类似于字典的访问方式,使用索引标签作为键来访问元素。
例如:
# 创建一个示例的Series对象
c = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 使用标签索引访问元素
print(c['a'])
print(c['e'])
输出结果如下:
1
5
在这个示例中,c['a']访问索引标签为'a'的元素,c['e']访问索引标签为'e'的元素.
3.通过布尔索引访问
在Pandas中,可以使用布尔索引来根据条件访问Series对象中的元素。布尔索引是指使用一个布尔条件来过滤Series对象中的元素,并返回满足条件的元素。
例如:
# 创建一个示例的Series对象
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 使用布尔索引根据条件访问元素
condition = s > 2
print(s[condition])
输出结果如下:
c 3
d 4
e 5
dtype: int64
在上面的代码中,我们首先创建了一个示例的Series对象s。然后,我们定义了一个布尔条件s > 2
,该条件将返回一个与Series对象相同长度的布尔Series对象,其中大于2的元素为True,小于等于2的元素为False。最后,我们使用s[condition]
来访问满足条件的元素,即大于2的元素。
需要注意的是,布尔索引返回的是一个与原始Series对象相同类型的Series对象,但只包含满足条件的元素。如果条件不满足任何元素,将返回一个空的Series对象。
四、Series序列对象的计算
1.基本数学运算
加法、减法、乘法、除法等基本数学运算可以直接对Series对象进行使用。
Series与一个数值做运算,Series中的每个值均和这个值做运算。
例如:
s = pd.Series([1, 2, 3, 4, 5])
# 加法
result1 = s + 2
print(result1)
# 减法
result2 = s - 1
print(result2)
# 乘法
result3 = s * 3
print(result3)
# 除法
result4 = s / 2
print(result4)
输出结果如下:
0 3
1 4
2 5
3 6
4 7
dtype: int64
0 0
1 1
2 2
3 3
4 4
dtype: int64
0 3
1 6
2 9
3 12
4 15
dtype: int64
0 0.5
1 1.0
2 1.5
3 2.0
4 2.5
dtype: float64
Series之间进行运算时,并不是下标一一对应,而是索引一一对应计算。
例如:
s = pd.Series([2, 5, 16, 9, 20], index=['a', 'b', 'c', 'd', 'e'])
v = pd.Series([6, 14, 9, 25, 5], index=['b', 'c', 'd', 'e', 'f'])
print(s * v)
输出结果如下:
a NaN
b 30.0
c 224.0
d 81.0
e 500.0
f NaN
dtype: float64
s缺索引为'f'、v缺索引为'a'的值,所以在两个Series进行运算时,在索引'a'上v为NaN值,在索引'f'上s为NaN值,进行运算时,这两个索引值上对应的运算结果便会成为NaN。
2.统计计算
Pandas提供了许多统计函数,如mean()
、median()
、sum()
、min()
、max()
等,可以用于计算Series对象的统计值。
例如:
# 创建一个示例的Series对象
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 求和
print(s.sum())
# 求平均值
print(s.mean())
# 求中位数
print(s.median())
# 求最大值
print(s.max())
# 求最小值
print(s.min())
输出结果如下:
15
3.0
3.0
5
1
以上就是Series序列对象的主要内容。