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()#按照索引排序
相关推荐
Luminbox紫创测控2 小时前
车载LiDAR强光测试的实验设计方法与数据分析
人工智能·数据挖掘·数据分析·车载系统·安全性测试·太阳光模拟器
SelectDB技术团队3 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
派小心.5 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
SL_staff5 小时前
为什么业务总在等BI报表?JVS-BI的可视化ELT实践解析
spring·数据分析·数据可视化
quantdash_cc9 小时前
量化数据清洗应该放在数据层还是策略层?从系统架构看清职责边界
开发语言·python·数据分析·系统架构·量化交易·股票数据·quantdash
Elastic 中国社区官方博客9 小时前
Elastic 线下 Meetup 将于 2026 年 12 月 19 号下午在西安举行
大数据·数据库·elasticsearch·搜索引擎·ai·数据分析·全文检索
Data analyse45610 小时前
Session超时与浏览器休眠的计时校验
大数据·前端·数据库·数据分析
总要学点什么11 小时前
第57篇:三维场景演示_基础版——同一秒,播过去和拖过去差出一千多米
3d·数据挖掘·数据分析·gis·webgl
一招合理12 小时前
数据分析:业务理解比技巧更重要
数据挖掘·数据分析
xiaomuzuirenzhen12 小时前
2027银行管培求职:数学与应用数学如何连接业务指标、数据分析与决策
数据挖掘·数据分析