数据分析09——Pandas中的索引设置/排序/数据统计(异常值处理)

news2024/11/28 16:46:22

1、Pandas中的索引设置:

  • Series重置索引
    • 重置索引:s2 = s1.reindex([1, 2, 3, 4, 5]) # 这种情况即使列表中索引给多了也没事,会自动填充空值。
    • 重置索引:s3 = s1.reindex([1, 2, 3, 4, 5], fill_value=0) # 这种情况列表中索引给多了,将填充值设为0。
    • 重置索引:s4 = s1.reindex([1, 2, 3, 4, 5], method=‘ffill’) # 向前填充,method='bfill’是向后填充。
  • DataFrame重置索引
# 充值行列索引
tb = df.reindex(
    index=['A001', 'A002', 'A003', 'A004', 'A005'],
    columns=['语文', '物理', '数学', '英语'])
tb

# reindex:对索引重新赋值
# reset_index:重置索引从0开始
# set_index:设置某列为索引

tb = df.set_index('用户ID')	# 设置'用户ID'列为索引
df.dropna().reset_index(drop=True)	# dropna()删除空值后,其余索引乱掉了,重置索引从0开始,drop=True表示删除之前乱掉的的索引drop=False,表示保留之前乱掉的索引。


2、Pandas中的排序:

  • 按列排序
# ascending=True,默认升序
# ascending=False,降序
# ignore_index=True,忽略索引,排序索引依然从0开始
df = df.sort_values(
    by='销量',
    ascending=False)
df

# 多列排序
df = df.sort_values(
    by=['大区', '销量'],
    ascending=[True, False])
  • 注意:多列排序,当存在冲突时,优先级最高的是设置在最前面的,如下虽然列1和列2都是设置为降序,但结果是列1降序,列2没变。
    在这里插入图片描述
  • 对分组统计结果排序:
# 以大区分组对销量求和,再对销量做排序
# df.groupby('大区')['销量'].sum().reset_index()
df1 = df.groupby('大区', as_index=False)['销量'].sum()	# 在分组的前提下,对其中的销量求和
df1.sort_values('销量', ascending=False)
# df1.sort_index(ascending=False)
  • rank方法进行排序:
	# {'average', 'min', 'max', 'first', 'dense'}
	df['销量(average)'] = df['销量'].rank(method='average', ascending=False)
	# 类似于SQL的rank,数值一样时,取first排名的最小值,名次会有空缺
	df['销量(min)'] = df['销量'].rank(method='min', ascending=False)
	# 数值一样时,取first排名的最大值,名次会有空缺
	df['销量(max)'] = df['销量'].rank(method='max', ascending=False)
	# 类似于SQL的row_number,即使数值一样,也会生成唯一名次(先到先得原则),名次是连续的
	df['销量(first)'] = df['销量'].rank(method='first', ascending=False)
	# 类似于SQL的dense_rank,如果数值一样,会出现并列的名次,名次是连续的
	df['销量(dense)'] = df['销量'].rank(method='dense', ascending=False)
- 说明:

在这里插入图片描述

  • 注意:在代码编辑中如何修改数据,源文件
  • 数据是不会发生改变的,要将修改之后的源数据进行保存,然后再导出到源文件,源数据才会发生改变。
  • 导出为Excel:df.to_excel(‘./data/demo_08_rank.xlsx’)

3、数据统计:

  • 前言:以下全都以df数据为例,
    • axis=1:表示计算数据来自行
    • axis=0:表示计算数据来自列
  • 求和:df[‘总成绩’] = df.sum(axis=1)
  • 求均值:df.loc[‘均值’] = df.mean(axis=0)
  • 求最大值:df.max()
  • 求最小值:df.min()
  • 求中位数:df.median()
  • 求众数:df.mode()
  • 方差:var()
  • 标准差:std()
  • 变异系数:df[‘变异系数’] = df[‘标准差’] / df[‘均值’]

4、pandas中分位数的求法和异常值的筛选与处理:

  • 概念:
    • 分位数是用于描述数据分布情况的统计量,是将所有数据值按大小顺序排列后分割成若干等份的特定位置上的数值。根据数据分割的不同方法和所得位置的不同,通常有四分位数、百分位数等多种类型的分位数。
    • 其中,四分位数把数据集分割成四个等份,分别为第一部分包含最小的25%的数据,第二部分包含最小的50%的数据(也就是中位数),第三部分包含最小的75%的数据,第四部分包含全部数据。即:将所有的数值由小至大排列,计算出第25%、第50%和第75%位置上的数值,这些数值分别称为第一、二和三个四分位数(Q1、Q2、Q3)。
    • 分位数能够通过数据的分布情况来反映数据集内部数据的集中性和波动程度,并且在数据可视化和异常值检测等方面广泛应用。同时,在描述连续变量数据的中位数时,也经常用到了百分位数,它表示数据集中某个特定百分比处的数字。例如,数据集的“75%分位数”表示有75%的数小于或等于该值,而另外25%大于该值。
  • 分位数计算公式
    在这里插入图片描述
  • 举例:
    在这里插入图片描述
  • 注意:需要注意的是,在计算分位数时,首先需要将待处理的数据从小到大排列并进行升序排序,以便于准确计算指定位置处的数值。此外,不同的统计软件和工具在计算分位数时使用的实际计算公式可能会略有不同,具体还需根据实际情况进行选择。
  • pandas中的实现方法:
# 计算25%的分位数,Q1,下四分位数
Q1 = df['利润'].quantile(0.25)

# 计算75%的分位数,Q3,上四分位数
Q3 = df['利润'].quantile(0.75)

# 计算四分位距,Q3-Q1
IQR = Q3-Q1

# 上限值:Q3+1.5*IQR,不能大于最大值
# 下限值:Q1-1.5*IQR,不能小于最小值
upper = min(Q3+1.5*IQR, df['利润'].max())
lower = max(Q1-1.5*IQR, df['利润'].min())

# 异常值筛选
cond1 = df['利润'] > upper
cond2 = df['利润'] < lower
df[cond1 | cond2]

# 异常值处理
# 如高于上限值,则使用上限值替换
# 如低于下限值,则使用下限值替换
df['利润'] = df['利润'].clip(lower=lower, upper=upper)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从0开始 莫比乌斯函数和反演 学习笔记

莫比乌斯 0 前言 建议先看这篇比较简略的文章&#xff08;有大概了解&#xff09; 莫比乌斯函数_为最后的荣光的博客-CSDN博客 再根据个人情况食用本篇博客 1 莫比乌斯函数 1 1 定义 首先对 n n n 唯一分解&#xff1a; 唯一分解&#xff1a; 唯一分解定理一篇就够了_求…

Springboot——根据需求创建后端接口

需求分析: 具体返回如下JSON格式数据 含有四个属性列:id 和 username 和photo 和followerCount 第一步: 首先按照下面文章创建一个模板项目 SpingBoot——SB整合MB的web项目模板_北岭山脚鼠鼠的博客-CSDN博客 第二步: 使用如下的建表语句在一个数据库中新建一个用户表 CREA…

【C++进阶之路】类和对象(下)

文章目录 一.再谈构造函数初始化对象的两种方式1.函数体内赋值2.初始化列表深入理解初始化列表 3.explicit隐式类型转换 二.static成员引言static成员static成员函数练习 三.友元引入友元函数友元类 四.内部类基本概念练习 五 .匿名对象引入匿名对象补充&#xff1a;编译器的优…

一百一十三、DBeaver——从hive同步数据到clickhouse

目标&#xff1a;把hive的DM层结果数据导出到clickhouse数据库&#xff0c;试了kettle、sqoop等多种方法都报错&#xff0c;尤其是kettle&#xff0c;搞了大半天发现还是不行。结果目前就只能用DBeaver同步数据。 准备工作&#xff1a;hive和clickhouse中都建好表 第一步&…

$nextTick与原生js先渲染dom再执行函数的方式

$nextTick与原生js先渲染dom再执行函数的方式 vue的$nextTick 简述 Vue.js 的 $nextTick 方法是用于在 DOM 更新后执行延迟回调的方法。 当 Vue.js 更新 DOM 后&#xff0c;有时候需要执行一些操作&#xff08;如获取更新后的 DOM 元素的位置等&#xff09;&#xff0c;但是…

2023年美国大学生数学建模竞赛C题预测Wordle的结果解题全过程文档及程序

2023年美国大学生数学建模竞赛 C题 预测Wordle的结果 原题再现&#xff1a; 背景介绍   Wordle是纽约时报目前每天提供的一个流行谜题。玩家通过在六次或更短时间内猜出一个至五个字母的单词来解决这个谜题&#xff0c;每次猜测都会得到反馈。在这个版本中&#xff0c; 每个…

30Wqps+闲鱼优惠中台,如何架构的?

说在前面 在尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常遇到一个 非常、非常高频的一个面试题&#xff0c;但是很不好回答&#xff0c;类似如下&#xff1a; 千万级数据&#xff0c;如何做系统架构&#xff1f;亿级数据&#xff0c;如何做做系统架构&#xf…

2022年美国大学生数学建模竞赛E题森林的碳封存解题全过程文档及程序

2022年美国大学生数学建模竞赛 E题 森林的碳封存 原题再现&#xff1a; 背景   正如我们所知&#xff0c;气候变化对生命构成了巨大威胁。为了减轻气候变化的影响&#xff0c;我们需要采取有效的行动来减少大气中温室气体的含量。仅仅减少温室气体排放是不够的。我们需要努…

Redis可持久化详解2

目录 ​编辑 Redis的持久化配置参数&#xff1a; 2.Redis的性能问题&#xff1a; 3保持久化数据的完整性和正确性&#xff1a; 4.Redis的集群技术&#xff1a; 总结&#xff1a; Redis持久化不得不注意的一些地方。 Redis的持久化配置参数&#xff1a; save&#xff1a;指…

MySQL之InnoDB表空间

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的&#xff1a;从根儿上理解MySQL》 通过前边的内容&#xff0c;相信大家都知道了表空间是一个抽象的概念&#xff0c;对于系统表空间来说&am…

Unity 全新的输入系统

选new的那个 会重启ide 然后去package manager里把这个装上 创建配置文件 文档地址 https://docs.unity3d.com/Packages/com.unity.inputsystem1.5/manual/index.html 创建完了是这样的 设置成这样 记住 value 和 vector2 然后就可以 选择 上下左右了 之前不设置 value…

【macOS】:macbook 安装了两个macOS后,设置默认启动的顺序

【macOS】&#xff1a;macbook 安装了两个macOS后&#xff0c;设置默认启动的顺序 如果你的 MacBook 安装了两个 macOS 操作系统&#xff0c; 你可以通过以下步骤设置默认启动的顺序&#xff1a; 1. 点击苹果菜单&#xff0c;选择“系统偏好设置”。 2. 点击“启动磁盘”选…

基于OpenMP的并行计算实验

一、实验目的 在Linux系统中&#xff0c;基于C编写OpenMP用例对并行计算进行实验&#xff1a; 1.掌握OpenMP的配置方式&#xff1b; 2.通过编写测试用例&#xff0c;观察引入OpenMP的加速效果 二、实验内容 2.1配置并测试OpenMP 1.配置并测试OpenMP 配置环境变量&#x…

MySQL基础(三十五)多版本并发控制

1. 什么是MVCC MVCC &#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并发控制。顾名思义&#xff0c;MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之&…

乡镇外卖好做吗?这几点一定要注意

乡镇外卖可靠吗&#xff1f;随着90后逐渐成为社会的主力军&#xff0c;自主创业&#xff0c;不做农民工已经成为这一代人的标签。找到一个项目难&#xff0c;可靠的项目更难找。根据实际数据反馈&#xff0c;乡镇外卖的就是是一个小而精细的项目。 但如果想通过乡镇外卖每月挣…

Python获取酷得music并下载,获得无限听

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests re win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源) 代码实现步骤 <基…

H桥电机驱动芯片CS9027C可pin对pin兼容DRV8812

CS9027C为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案。CS9027C有两路 H 桥驱动&#xff0c;每个H桥可提供最大输出电流2A(在24V 和Ta 25℃ 适当散热条件下)&#xff0c;可驱动两个刷式直流电机&#xff0c;或者一个双极步进电机&#xff0c;或者螺线管或者其它…

全网火爆,性能测试从0到1分析需求到实战详解,冲出高级测试岗...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、制定测试目的 …

《设计模式》备忘录模式

《设计模式》备忘录模式 定义&#xff1a; 备忘录模式又称为快照模式或者令牌模式&#xff0c;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;这样可以在以后将对象恢复到原先保存的状态。属性行为型模式。 备…

【云原生】私有镜像的解决方案-Harbor管理实战

前言 通过前面的镜像管理&#xff0c;我们知道docker的开发和运行都离不开镜像管理&#xff0c;如果要进行镜像管理就需要使用镜像仓库。 docker官方提供的镜像仓库是&#xff1a; docker hub&#xff0c; 很方面但从安全和效率的角度考虑&#xff0c;这样的公有镜像环境就无…