小yo 博客

Back

Python数据分析-series

创建方法

import pandas as pd
import numpy as np
s = pd.Series([1,2,7,4,5])
print(s)
0    1
1    2
2    7
3    4
4    5
dtype: int64
# 自定义索引
s = pd.Series([1,2,7,4,5],index=['A','B','C','D','E'])
print(s)
A    1
B    2
C    7
D    4
E    5
dtype: int64
# 定义name
s = pd.Series([1,2,7,4,5],index=['A','B','C','D','E'],name='月')
print(s)
A    1
B    2
C    7
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

属性

print(s.index)
Index(['a', 'b', 'c'], dtype='object')
print(s.values)
[1 2 3]
print(s.shape,s.ndim,s.size)
(3,) 1 3
print(s.dtype)
int64
s.name = 'test'
print(s.name)
test
print(s.loc["a"])  # 显式索引
1
print(s.iloc[2]) # 隐式索引
3
print(s.loc["a":"c"])
a    1
b    2
c    3
Name: test, dtype: int64
print(s.at['a']) # at不支持切片
print(s.iat[2])
1
3

访问数据

# 直接访问
print(s['a'])
1
print(s[s>1]) # 布尔索引
b    2
c    3
Name: test, dtype: int64
print(s.head()) # 默认返回前五行
a    1
b    2
c    3
Name: test, dtype: int64
print(s.tail()) # 默认后五行
print(s.head(2))
a    1
b    2
c    3
Name: test, dtype: int64
a    1
b    2
Name: test, dtype: int64

常用方法

s1 = pd.Series([10,2,np.nan,None,3,4,5],index=['A','B','C','D','E','F','G'],name='date')
print(s1)
A    10.0
B     2.0
C     NaN
D     NaN
E     3.0
F     4.0
G     5.0
Name: date, dtype: float64
s1.head()
A    10.0
B     2.0
C     NaN
D     NaN
E     3.0
Name: date, dtype: float64
s1.tail(2)
F    4.0
G    5.0
Name: date, dtype: float64
s1.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: date, dtype: float64
# 获取非缺失值的元素个数
print(s1.count())
5
# 获取索引
print(s1.keys()) # 方法
print(s1.index)  # 属性
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G'], dtype='object')
# 判断
print(s1.isna()) # 检查每个元素是否为缺失值
print(s1.isin([4,5,6])) # 检查每个元素是否在参数集合中
A    False
B    False
C     True
D     True
E    False
F    False
G    False
Name: date, dtype: bool
A    False
B    False
C    False
D    False
E    False
F     True
G     True
Name: date, dtype: bool
print(s1.mean())
print(s1.std())
print(s1.var())
print(s1.sum())
print(s1.max())
print(s1.min())
print(s1.median()) # 缺失值都不参与运算
4.8
3.1144823004794877
9.700000000000001
24.0
10.0
2.0
4.0
s1.sort_values()
B     2.0
E     3.0
F     4.0
G     5.0
A    10.0
C     NaN
D     NaN
Name: date, dtype: float64
print(s1.quantile(0.25))
3.0
# 众数
print(s1.mode())
0     2.0
1     3.0
2     4.0
3     5.0
4    10.0
Name: date, dtype: float64
print(s1.value_counts()) # 每个元素的计数
date
10.0    1
2.0     1
3.0     1
4.0     1
5.0     1
Name: count, dtype: int64
# 去重
s1.drop_duplicates() # 缺失值也会被去重
A    10.0
B     2.0
C     NaN
E     3.0
F     4.0
G     5.0
Name: date, dtype: float64
s1.sort_index() # 按索引排序
A    10.0
B     2.0
C     NaN
D     NaN
E     3.0
F     4.0
G     5.0
Name: date, dtype: float64
s1.sort_values() # 按值排序
B     2.0
E     3.0
F     4.0
G     5.0
A    10.0
C     NaN
D     NaN
Name: date, dtype: float64
s1.diff() # 计算前后两个之间的差值
A    NaN
B   -8.0
C    NaN
D    NaN
E    NaN
F    1.0
G    1.0
Name: date, dtype: float64
Python数据分析-series
https://smallyo.top/blog/c498296d035f0a0d
Author小yo
Published atNovember 30, 2025