数据据统计基础之Pandas.series学习

12 阅读3分钟

在数据分析中,一维数据是最基础的数据形式。Pandas 提供了 Series 这一强大而灵活的一维数据结构,它不仅支持数值、字符串、布尔值等多种数据类型,还自带索引标签缺失值处理向量化运算等高级功能,是构建 DataFrame 的基石。

💡 Series 本质上是一个带标签的 NumPy 一维数组,但功能远超普通数组。

本节将系统介绍:

  • 如何创建 Series(列表、字典、自定义索引)
  • 核心属性与元信息(index, values, dtype, name 等)
  • 数据访问方式(loc, iloc, at, iat)
  • 缺失值处理与布尔筛选
  • 常用统计函数(mean, std, quantile, mode...)
  • 排序、去重与频次统计

通过以下示例,您将快速掌握 Pandas Series 的日常使用技巧。

# series学习
import pandas as pd
s= pd.Series([1,2,3,4,5])
print(s)
# 自定义索引
s = pd.Series([1,2,3,4,5],index=['A','B','C','D','E'])
print(s)
# 定义name
s= pd.Series([1,2,3,4,5],index=['A','B','C','D','E'],name='月份')
print(s)
0    1
1    2
2    3
3    4
4    5
dtype: int64
A    1
B    2
C    3
D    4
E    5
dtype: int64
A    1
B    2
C    3
D    4
E    5
Name: 月份, dtype: int64
# 通过字典来创建
s= pd.Series({"a":1,"b":2,"c":3})
print(s)
s1=pd.Series(s,index=["a","c"])
print(s1)
a    1
b    2
c    3
dtype: int64
a    1
c    3
dtype: int64
# series的属性
print(s.index)
print(s.values)
print(s.shape,s.ndim,s.size)
print(s.dtype)
s.name='test'
print(s.name)
print(s.loc['b':'c']) # 显式索引
print(s.iloc[0:2]) # 隐式索引
print(s.at['a'])
print(s.iat[0])
Index(['a', 'b', 'c'], dtype='object')
[1 2 3]
(3,) 1 3
int64
test
b    2
c    3
Name: test, dtype: int64
a    1
b    2
Name: test, dtype: int64
1
1
# 访问数据
# print(s[1])
print(s['a'])
print(s[s<3])
print(s.head())
print(s.tail())
1
a    1
b    2
Name: test, dtype: int64
a    1
b    2
c    3
Name: test, dtype: int64
a    1
b    2
c    3
Name: test, dtype: int64
# 常见函数
import numpy as np
s= pd.Series([10,2,np.nan,None,3,4,5],index=['A','B','C','D','E','F','G'],name='data')
print(s)
A    10.0
B     2.0
C     NaN
D     NaN
E     3.0
F     4.0
G     5.0
Name: data, dtype: float64
s.head() # 默认取前五行
s.tail() #默认取后五行
C    NaN
D    NaN
E    3.0
F    4.0
G    5.0
Name: data, dtype: float64
# 查看所有的描述性信息
s.describe()
count     5.000000
mean      4.800000
std       3.114482
min       2.000000
25%       3.000000
50%       4.000000
75%       5.000000
max      10.000000
Name: data, dtype: float64
# 获取元素个数(忽略缺失值)
print(s.count())
5
# 获取索引
print(s.keys()) # 方法
print(s.index) # 属性
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')
print(s.isna()) # 检查series里的每一个元素是否为缺失值
s.isna()
A    False
B    False
C     True
D     True
E    False
F    False
G    False
Name: data, dtype: bool





A    False
B    False
C     True
D     True
E    False
F    False
G    False
Name: data, dtype: bool
s.isin([4,5,6]) # 检查每个元素是否在参数集合中
A    False
B    False
C    False
D    False
E    False
F     True
G     True
Name: data, dtype: bool
s.describe()
print(s.mean()) # 平均值
print(s.sum()) # 总和
print(s.max()) # 最大值
print(s.min()) # 最小值
print(s.median()) # 中位数
print(s.std()) # 标准差
print(s.var()) # 方差
4.8
24.0
10.0
2.0
4.0
3.1144823004794877
9.700000000000001
s.sort_values()
print(s.quantile(0.25))
3.0
# 众数
s['H']=4
print(s.mode())
0    4.0
Name: data, dtype: float64
print(s.value_counts()) # 每个元素的计数
data
4.0     2
10.0    1
2.0     1
3.0     1
5.0     1
Name: count, dtype: int64
s.drop_duplicates() # 去重
s.unique()
print(s.nunique()) # 去重后的元素个数
5
# 排序 值、索引
s.sort_index() #按索引排序
s.sort_values() # 按值排序
B     2.0
E     3.0
F     4.0
H     4.0
G     5.0
A    10.0
C     NaN
D     NaN
Name: data, dtype: float64