news 2026/3/5 14:31:54

Pandas数据分析核心指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pandas数据分析核心指南

pandas

定义:

Pandas 是 Python 数据分析工具链中最核心的库,充当数据读取、清洗、分析、统计、输出的高效工具。

Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。

Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。

Pandas是基于NumPy构建的专门为处理表格和混杂数据设计的Python库,核心设计理念包括:

  • 标签化数据结构:提供带标签的轴
  • 灵活处理缺失数据:内置NaN处理机制
  • 智能数据对齐:自动按标签对齐数据
  • 强大IO工具:支持从CSV、Excel、SQL等20+数据源读写
  • 时间序列处理:原生支持日期时间处理和频率转换

Python + Pandas的使用场景:数据清洗,统计分析,可视化等
功能特色:算法和分析部署核心

一,datatime与series区别

二,pandas series(一维)

1.series创建

importnumpyasnpimportpandasaspd#需要引用这些模块a=pd.Series([2,5,3])print(a)#左边是默认索引右边是数组


字典创建:

a=pd.Series({'张三':10,'张二':15,'张大':18},name='年龄')print(a)b=pd.Series(a,index=['张三','张大'])print(b)

# 定义标签和使用index修改默认索引a=pd.Series([2,5,3],index=['a','b','c'],name='次数')print(a)

2.series属性

print(a.index)print(a.values)print(a.shape,a.size,a.ndim)print(a.dtypes)print(a.name)

上面的这些属性跟numpy一样你可以看上一篇具体结果不展示了

print(a.loc['张三'])#显示print(a.loc['张三':'张二'])#可以切片print(a.iloc[1])#隐示print(a.iloc[0:2])print(a.at['张大'])#不支持切片,标签访问print(a.iat[0])#位置访问

3.访问数据

print(a['张三'])#根据索引访问print(a[a>11])#根据value值a#直接访问

a=pd.Series([2,5,3,6,7,9])print(a.head())#默认打前5行填数字就是获取几行print(a.tail(2))#默认结尾5行可以自己写几行

4.series常用方法

先创建一个Series

importnumpyasnp a=pd.Series([2,5,3,6,7,9,None,np.nan],index=['a','b','c','d','e','f','g','h'],name='次数')print(a)
a.value_counts()#出现次数

这里np.nan和None是缺失值所以只输出了6

a.count()

去重:返回列表

a['a']=3#把原来的a对应的2改成了3

去重后不算Nan的数值结果位有效个数

print(a.nunique())

去掉重复行,得到的去重后的series

print(a.drop_duplicates())

随机取样两个不写就默认取样一个

a.sample(2)

默认从小到大按索引排序

a.sort_index()

从大到小

a.sort_index(ascending=False)

按values值排序

a.sort_values()

把所有的2改成7

a.replace({2:7})

改单个

a['a']=3

获取索引

print(a.keys())#方法print(a.index)#属性

查看所有描述性信息

a.describe()

判断缺失值检查每一个元素

print(a.isna())

判断某些元素在集合中

a.isin([3,5])

取多少分位数

print(a.quantile(0.5))#取50%

三,pandas Datatime(二维)

1.Datatime创建

series创建:

importnumpyasnpimportpandasaspd a=pd.Series([2,5,3])b=pd.Series([2,5,9])c=pd.DataFrame({"第一列":a,"第二列":b})print(c)


字典创建:

c=pd.DataFrame({"name":["张三","张二","张大","王二狗","李二麻"],"score":[20,92,59,90,5],"age":[15,19,20,17,19]},index=[1,2,3,4,5],columns=["name","age","score"]#使用colums改变列的顺序原本是name score age)c#输出

2.Datatime属性

print('行索引:',c.index)print('列标签:',c.columns)print('值',c.values)print('维度:',c.ndim)print('形状:',c.shape)print('元素个数:',c.size)print('数据类型:')print(c.dtypes)

置换行列

c.T

原来五行三列现在三行五列

查看行

print(c.loc[2])print(c.iloc[1])#这个是用位置看的所以结果相同0.1

查看列

print(df.loc[:,'name'])print(df.iloc[:,0])

查看单个元素

print(c.at[3,'score'])print(c.iat[2,1])print(c.loc[3,'score'])print(c.iloc[2,1])

获取单列数据
四种方法

print(c['name'])print(c.name)print(c[['name']])c[['name']]

获取多列

print(c.name,c.score)

3.Datatime常用方法

print(df.head(2))print(df.tail(3))

查看元素是否包含在参数集合中

print(c.isin(['直立千古',20]))

查看元素是否是缺失值

print(c.isna())#这里没有所以全是False

和,大小,等等

print(c['score'].sum())#某一列的总和print(df.score.max())#最大值print(df.age.min())#最小值print(df.score.mean())#平均数print(df.score.median())#中位数print(df.age.mode())#众数
print(c['score'].sum())#某一列的总和print(c.score.max())#最大值print(c.age.min())#最小值print(c.score.mean())#平均数print(c.score.median())#中位数print(c.age.mode())#众数print(c.score.std())#标准差print(c.score.var())#方差print(c.score.quantile(0.25))#分位数

print(c.value_counts())#出现的次数print(c.count())#每一列非缺失值的个数print(c.drop_duplicates())print(c.drop_duplicates(subset=['age']))#只去固定列的c.sample(2)#随机取样print(c.replace(15,30))#替换所有的15不会改行列名print(c.sort_index(ascending=False))#按索引排序从大到小print(c.sort_values(by=['score',‘age’],ascending=[False,True]))#按成绩从大到小排序如果成绩一样按年龄排序

取出最大的几个,并从大到小排序如果成绩一样年龄大在上面

c.nlargest(2,columns=['score','age'])

取最小的几个,反之

c.nsmallest(2,columns=['score','age'])

累加

c.cumsum()c.score.cumsum()#固定行累加


c.age.cummax(axis=0)#因为我行里面有字符串所以axis不能=1找出累计的最大值

多个的话只能这么写

c[['age','score']].cummax(axis=0)

找出累计最小值

c.cummin(axis=0)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 12:10:34

小程序计算机毕设之基于SpringBoot+微信小程序的微信刷题系统管理系统基于springboot+微信小程序的在线复习小程序(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/28 14:09:52

小程序计算机毕设之基于springboot+微信小程序的钓鱼交友与渔具回收的微信小程序开发钓点信息、天气预报、文章信息、联系钓友、商城管理(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/28 12:30:39

小程序毕设选题推荐:基于springboot+微信小程序的钓鱼交友与渔具回收的微信小程序开发基于微信小程序的钓鱼论坛小程序系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/1 12:23:52

Github Copilot 实战: 使用 Copilot AI + Blazor 编一个五子棋游戏

创建 Blazor web工程,选Autoimage2. 打开 GitHub Copilot 窗口,输入提示词使用 Blazor 编一个五子棋游戏image3.复制代码测试为了方便调试, 我们先把运行模式由 InteractiveAuto 改为 InteractiveServer打开 App.razor 编辑 两行 rendermode"InteractiveAuto" 改为 r…

作者头像 李华
网站建设 2026/3/5 16:47:57

【课程设计/毕业设计】基于微信小程序的应急救援小能手软件系统基于springboot+微信小程序的应急救援小能手软件系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/28 1:23:58

【课程设计/毕业设计】基于Springboot+微信小程序的校园二手交易平台小程序基于springboot+微信小程序的社区论坛与二手交易平台的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华