Pandas库series数据结构

Pandas 是 Python 数据分析的核心库,基于 NumPy 构建,提供了快速、灵活的数据结构,主要用于处理表格型异质性数据,类似于 Excel 表格或 SQL 数据库。

与Numpy不同,Numpy中的ndarray既可以是一维也可以是二维------体现特性多维性,而在Pandas中将一二维数据分别处理,一维使用series而二维是dataframe。本帖先总结series。

简答来说,Series相当于关系型数据库中的一列,亦或者说是表格的一列。


一开始要记得把Pandas包导入:

python 复制代码
import pandas as pd
import numpy as np

一.创建

常规的创建方式是通过列表传参:

python 复制代码
s=pd.Series([1,2,3,4,5])

除了传参数值本身,还可以传参序号------即索引:

python 复制代码
s1=pd.Series([1,2,3,4,5],index=['f','b','c','d','e'])

既可以像我这样以离经叛道随意胡写,也可以写标准的顺序,主打一个从心所欲不逾矩:

就好比一列数据的表头一样,Series类型还支持取名,通过name参数来定义:

python 复制代码
s2=pd.Series(['a','b','c','d','e'],name="小写字母")
print(s2)

顺便说一句,默认的索引依旧是从0开始:

索引和数值的二元对立,有点类似键值对,因此可以用字典来传参:

python 复制代码
s3=pd.Series({"one":1,"two":2,"three":3,"four":4,"five":5})
print(s3)

还可以通过原有Series来阶段一部分形成新的半个副本一样:

python 复制代码
s4=pd.Series(s3,index=['one','two'])#只选取其中一部分

二.属性

value表示Series的数值集合,而index则是索引集合,本质还是面向对象,通过属性调用即可:

python 复制代码
print(s3.values,s3.index)

类似ndarray也可以通过索引/下标进行切片,分为显示索引和隐式索引:因为可以自定义索引,通过我们自己定义的索引来访问就是显式索引,如下的切片:两侧都是闭区间!

python 复制代码
print(s3.loc["one":"three"])#显式索引

隐式索引则是默认的索引即下标------或者说是位序减1,但注意这里是左闭右开!

python 复制代码
print(s3.iloc[0:2])

对比来看一下,并且注意调用的函数名是什么:

类似的还有访问单个元素的方式,同样包含显式和隐式两种,区别在于不能切片:

python 复制代码
print(s3.at["one"])#类似但不支持切片
print(s3.iat[0])

三.访问

实际上除了上面的loc或者at以及两者的隐式版本,实际上可以像列表一样直接用下标访问,但是不推荐:

python 复制代码
print(s3[0])

更好的做法是通过索引标签来随机存取:

python 复制代码
print(s3["one"])

和ndarray一样也可以使用bool方法:

python 复制代码
print(s3[s3>3])#依旧是布尔索引

四.方法

head和tail分别返回默认的最前五行和最后五行,填数字则按照数字的数量返回,超过最大值就返回所有:

python 复制代码
s5=pd.Series([1,np.nan,None,3,4,5],index=["1","2","3","4","5","6"])
print(s5.head())#默认前五行
print(s5.tail())#默认后五行,填数字则按需返回,超过最大值就返回所有的元素
print(s5.tail(1))

describe返回各种统计信息:

python 复制代码
print(s5.describe())#返回所有描述信息

需要注意元素none也会被视为NAN,统计信息一概不包含NAN在内。也可以单独计算一个,和ndarray类似,这里不再赘述:

返回索引,等价于index,前者是方法后者是属性:

python 复制代码
print(s5.keys())

判断哪个是缺失值:

python 复制代码
print(s5.isna())

判断列表的每一个元素是否在参数列表中:

python 复制代码
print(s5.isin([4,5]))

按值排序,NAN统一在后面:

python 复制代码
print(s5.sort_values())

返回众数,存在多个就都返回:

python 复制代码
print(s5.mode())

还有一些统计类的方法:

python 复制代码
print(s.value_counts())#按值来统计
s.drop_duplicates()#去重,相较于unique会返回为列表,该方法还是原类型
print(s.nunique())#去重后的元素个数
s.sort_index()#按照索引排序
相关推荐
2401_8274999920 小时前
数据分析学习06(黑马)-Matplotlib
学习·数据分析·matplotlib
YangYang9YangYan20 小时前
2026数字化转型时代学数据分析的技术价值
数据挖掘·数据分析
电商API_1800790524721 小时前
获取淘宝商品原价、券后价的区别在哪里?难度以及解决办法
数据库·性能优化·数据挖掘·数据分析·网络爬虫
Mr数据杨1 天前
少样本规则推理模型与未知任务自适应应用
机器学习·数据分析·kaggle
Mr数据杨1 天前
抽象推理智能系统方案设计与技术评审应用
机器学习·数据分析·kaggle
源码之家1 天前
计算机毕业设计:Python股票智能分析预测平台 Flask框架 数据分析 可视化 机器学习 随机森林 大数据(建议收藏)✅
python·机器学习·数据分析·django·flask·课程设计
Johnstons1 天前
抓包工具怎么选:Wireshark、tcpdump 与流量回溯平台的边界、场景与排障判断标准
测试工具·数据分析·wireshark·es·tcpdump·抓包工具选型与流量回溯
vx_biyesheji00011 天前
计算机毕业设计:Python股价预测与可视化系统 Flask框架 数据分析 可视化 机器学习 随机森林 大数据(建议收藏)✅
python·机器学习·信息可视化·数据分析·flask·课程设计
2501_921960852 天前
协同本体论:元公理体系、普适演化律则与工程范式统一构建
python·重构·numpy·pandas·scipy
PaperData2 天前
经管科研数据使用指南:一站式数据资源推荐清单
数据分析