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()#按照索引排序
相关推荐
书到用时方恨少!16 小时前
Python Pandas 使用指南:数据分析的瑞士军刀
python·数据分析·pandas
城数派1 天前
谷歌18亿建筑足迹数据集 Google Open Buildings V3
数据库·arcgis·信息可视化·数据分析·excel
源码之家1 天前
计算机毕业设计:Python新能源汽车数据分析与个性化推荐系统 Django框架 snowNLP 协同过滤推荐算法 requests爬虫 可视化(建议收藏)✅
大数据·python·机器学习·数据分析·django·汽车·课程设计
YangYang9YangYan1 天前
2026经管专业学数据分析的技术价值与应用前景
数据挖掘·数据分析
绛橘色的日落(。・∀・)ノ1 天前
Pandas 第九章 分类数据
pandas
MediaTea1 天前
Pandas :索引机制与数据访问
pandas
programhelp_2 天前
SIG 2026 Quant / Susquehanna OA 全攻略
人工智能·机器学习·面试·职场和发展·数据分析
野生技术架构师2 天前
掌握SQL窗口函数,轻松处理复杂数据分析
数据库·sql·数据分析
YangYang9YangYan2 天前
2026大学财会行业学数据分析的价值分析
数据挖掘·数据分析
rainy雨2 天前
精益数据分析系统功能拆解:如何用精益数据分析解决指标虚高难题与初创期验证场景
大数据·数据库·人工智能·信息可视化·数据挖掘·数据分析·精益工程