Pandas 数据结构 - Series
Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。
Series 特点:
-
索引: 每个
Series
都有一个索引,它可以是整数、字符串、日期等类型。如果没有显式指定索引,Pandas 会自动创建一个默认的整数索引。 -
数据类型:
Series
可以容纳不同数据类型的元素,包括整数、浮点数、字符串等。
Series 是 Pandas 中的一种基本数据结构,类似于一维数组或列表,但具有标签(索引),使得数据在处理和分析时更具灵活性。
以下是关于 Pandas 中的 Series 的详细介绍: 创建 Series: 可以使用 pd.Series() 构造函数创建一个 Series 对象,传递一个数据数组(可以是列表、NumPy 数组等)和一个可选的索引数组。
pandas.Series( data, index, dtype, name, copy)
参数说明:
-
data :一组数据(ndarray 类型)。
-
index :数据索引标签,如果不指定,默认从 0 开始。
-
dtype :数据类型,默认会自己判断。
-
name :设置名称。
-
copy :拷贝数据,默认为 False。
创建一个简单的 Series 实例:
实例
a = [ 1 , 2 , 3 ]
myvar = pd. Series ( a )
print ( myvar )
输出结果如下:
从上图可知,如果没有指定索引,索引值就从 0 开始,我们可以根据索引值读取数据:
实例
a = [ 1 , 2 , 3 ]
myvar = pd. Series ( a )
print ( myvar [ 1 ] )
输出结果如下:
2
我们可以指定索引值,如下实例:
实例
a = [ "Google" , "yssmx" , "Wiki" ]
myvar = pd. Series ( a , index = [ "x" , "y" , "z" ] )
print ( myvar )
输出结果如下:
根据索引值读取数据:
实例
a = [ "Google" , "yssmx" , "Wiki" ]
myvar = pd. Series ( a , index = [ "x" , "y" , "z" ] )
print ( myvar [ "y" ] )
输出结果如下:
yssmx
我们也可以使用 key/value 对象,类似字典来创建 Series:
实例
sites = { 1 : "Google" , 2 : "yssmx" , 3 : "Wiki" }
myvar = pd. Series ( sites )
print ( myvar )
输出结果如下:
从上图可知,字典的 key 变成了索引值。
如果我们只需要字典中的一部分数据,只需要指定需要数据的索引即可,如下实例:
实例
sites = { 1 : "Google" , 2 : "yssmx" , 3 : "Wiki" }
myvar = pd. Series ( sites , index = [ 1 , 2 ] )
print ( myvar )
输出结果如下:
设置 Series 名称参数:
实例
sites = { 1 : "Google" , 2 : "yssmx" , 3 : "Wiki" }
myvar = pd. Series ( sites , index = [ 1 , 2 ] , name = "yssmx-Series-TEST" )
print ( myvar )
更多 Series 说明
基本操作:
# 获取值 value = series[2] # 获取索引为2的值 # 获取多个值 subset = series[1:4] # 获取索引为1到3的值 # 使用自定义索引 value = series_with_index['b'] # 获取索引为'b'的值 # 索引和值的对应关系 for index, value in series_with_index.items(): print(f"Index: {index}, Value: {value}")
基本运算:
# 算术运算 result = series * 2 # 所有元素乘以2 # 过滤 filtered_series = series[series > 2] # 选择大于2的元素 # 数学函数 import numpy as np result = np.sqrt(series) # 对每个元素取平方根
属性和方法:
# 获取索引 index = series_with_index.index # 获取值数组 values = series_with_index.values # 获取描述统计信息 stats = series_with_index.describe() # 获取最大值和最小值的索引 max_index = series_with_index.idxmax() min_index = series_with_index.idxmin()
注意事项:
-
Series
中的数据是有序的。 -
可以将
Series
视为带有索引的一维数组。 - 索引可以是唯一的,但不是必须的。
- 数据可以是标量、列表、NumPy 数组等。