pandas之Series基础
pandas是python语言的一个扩展程序库,用于数据分析pandas是一个开放源码,BSD许可的库,提供高性能,易于使用的数据结构和数据分析工具pandas名字衍生自术语panel data(面板数据)和(python数据分析)pandas是一个强大的分析结构化数据的工具集,基础是numpy(提供高性能的矩阵运算)pandas可以从各种文件格式导入数据,例如;pandas可以对各种数据进行运算
·
pandas之Series基础
1. pandas介绍
pandas
是python
语言的一个扩展程序库,用于数据分析pandas
是一个开放源码,BSD
许可的库,提供高性能,易于使用的数据结构和数据分析工具pandas
名字衍生自术语panel data
(面板数据)和python data analysis
(python数据分析)pandas
是一个强大的分析结构化数据的工具集,基础是numpy
(提供高性能的矩阵运算)pandas
可以从各种文件格式导入数据,例如;csv,excel,json...
pandas
可以对各种数据进行运算操作,比如:归并,再成形,选择,还有数据清洗和数据加工特征pandas
的最主要数据结构是Series
(一维数据)和DataFrame
(二维数据),这两种数据结构足以处理金融,统计,社会科学,工程等领域里的大多数典型用例
2.Series定义
Series
是一种类似于字典(dict-like)
的一维数组(array-like)
的对象,由下面两个部分组成:
注意:Series
类型数值会强制统一
values
:一组数据(ndarray类型)index
:相关的数据索引标签
3.构造Series
-
1.
from ndarray
,使用ndarray
构造Series
,是一个引用对象# 通过ndarry数组创建Series arr1=np.random.randint(0,10,size=5) # index是用来指定Series对象的显示索引,如果没有设置,则默认显示隐式索引填充(数组填充) s1=pd.Series(data=arr1,index=['A','B','C','D','E'])
-
2.
from list
使用列表构造,是一个副本对象#通过列表创建Series lis=[1,2,3,4] s3=pd.Series(data=lis,index=list('ABCD'))
-
3.
from dict
,使用字典构造#通过字典创建Series,通过字典创建不会传递index,字典的key就是index,如果传入index,会与字典中的key匹配,不匹配,返回NaN #字典构造的Series.默认使用字典的key作为显示索引,values作为Series的值 #NaN not a number 是空数值 user_info={ 'name':'hello', 'age':20, 'address':"安徽" } s4=pd.Series(data=user_info) #自动匹配user_info中的key s5=pd.Series(data=user_info,index=['name','address','A'])
-
4.
from scalar
(标量)value
- 使用一个标量(常量或变量)构造时,必须指定index,标量会被重复匹配到每一个
index
index=list('ABCDE') #会将标量6重复匹配到每一个index s6=pd.Series(data=6,index=index)
- 使用一个标量(常量或变量)构造时,必须指定index,标量会被重复匹配到每一个
4.Series属性
属性 | 含义 |
---|---|
name |
返回Series 对象的名字 |
shape |
返回Series 对象的形状 |
size |
返回Series 对象的元素个数 |
index or keys() |
返回Series 对象的显示索引 |
values |
返回Series 对象的所有元素值 |
items() |
Python 字典的表达式和方法来检测键 / 索引和值 |
s = pd.Series(data=[1,2,3], index=list('ABC'))
s.shape #(3,)
s.index #Index(['A', 'B', 'C'], dtype='object')
s.keys() #Index(['A', 'B', 'C'], dtype='object')
s.values #array([1, 2, 3], dtype=int64)
s.size #3
list(s.items()) #[('A', 1), ('B', 2), ('C', 3)]
5. Series的数学运算
-
Series
对大多数Numpy
的函数都是兼容的 -
1.与非
pandas
对象运算 【服从广播机制原则】#服从广播机制 s=pd.Series(data=[1,2,3],index=list('ABC')) s + 1
-
2.
numpy functions
,numpy
的函数Series
也可用#求平方 np.power(np.array([1,2,3]),2)
-
3.
Series
之间的运算- 索引对齐原则
- 对不齐补空值,使用
add/sub/nul/div
函数处理空值
s=pd.Series(data=[1,2,3],index=list('ABC')) s1=pd.Series(data=np.array([2,3,4]),index=['C','A','B']) s+s1 A 4 B 6 C 5 dtype: int64 #对不齐的补空值 s1=pd.Series(data=np.array([2,3,4]),index=['C','A','B']) s2=pd.Series(data=[2,3,4],index=['A','C','D']) s1+s2 A 5.0 B NaN C 5.0 D NaN dtype: float64
6. Series的索引和切片
显示索引 | 隐式索引 | 含义 |
---|---|---|
data[0] |
data['语文'] |
索引获取值 |
data[[0,2]] |
data[['语文','数学'] ] |
列表获取值 |
data[0:2] |
data['语文':'数学'] |
切片获取值 |
dic={ '语文':98, '数学':100, '英语':60 }
data=pd.Series(data=dic)
data[0]
data['语文']
data[0:2]
data['语文':'数学']
data[[0,2]]
data[['语文','英语']]
7. Series的常用方法
方法 | 含义 |
---|---|
head() |
默认前n行数据,n 默认为5 |
tail() |
默认后n行数据,n 默认为5 |
unique() |
返回去重后元素值 |
nunique() |
返回去重后元素个数 |
value_counts() |
求不同元素的个数 |
isnull() |
判断数据是否为空 |
notnull() |
判断数据是否不为空 |
isnull() |
判断数据是否为空 |
notnull() |
判断数据是否不为空 |
add(n) |
每个元素加上n |
sub(n) |
每个元素减上n |
mul(n) |
每个元素乘上n |
div(n) |
每个元素除上n |
s4=pd.Series(data=[1,2,4,6,3,5,6,6,6,4,3,2,1])
display( s4.head(),s4.tail(),s4.unique() ,s4.nunique() ,s4.isnull(),s4.notnull(),s4.add(2),s4.sub(2),s4.mul(2),s4.div(2))

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)