Python数据处理的六种方式总结,Python零基础学习

文章目录

    • 前言
    • 1、dedup()去重并排序
    • 2、traverse()拆分嵌套数组
    • 3、filter()数据筛选
    • 4、groupby()分组运算
    • 5、select()遍历结果集
    • 6、sort()数据排序
  • 总结


在这里插入图片描述

前言

在 Python 的数据处理方面经常会用到一些比较常用的数据处理方式,比如pandas、numpy等等。

今天介绍的这款 Python 数据处理的管道数据处理方式,通过链式函数的方式可以轻松的完成对list列表数据的处理。通过类似于shell编程中的管道符对处理条件进行筛选从而更快速的完成对数据的处理操作。

由于pipe是第三方提供的非标准库,所以需要使用pip的方式进行安装。

pip install pipe -i https://pypi.tuna.tsinghua.edu.cn/simple/# Importing the pipe module.
import pipe# Importing the pprint function from the pprint module.
from pprint import pprint

关于pipe提供的数据处理函数主要包含六种,分别是dedup()、traverse()、filter()、groupby()、select()、sort(),通过函数间的不同组合可以完成不同的数据处理效果。

1、dedup()去重并排序

数据去重比较好操作,就是去除一个列表中的重复数据,如果是数字类型的list列表,可以对原始值进行去重也可以对其绝对值进行去重操作。

list\_ = (\[-6, -5, 0, 1, 5, 5\] |pipe.dedup |pipe.Pipe(list)
)pprint(list\_)# \[-6, -5, 0, 1, 5\]

也可以通过设置dedup()函数的属性对绝对值进行去重操作。

list\_ = (\[-6, -5, 0, 1, 5, 5\] |pipe.dedup(key=abs) |pipe.Pipe(list)
)pprint(list\_)# \[-6, -5, 0, 1\]

2、traverse()拆分嵌套数组

为了展示效果,我创建了一个多重数组的列表通过使用traverse()函数完成拆分。

list\_ = (\[-1, 0, \[2, 4, \[5, 6, \[3, 2, 5\]\]\]\] |pipe.traverse |pipe.Pipe(list)
)pprint(list\_)# \[-1, 0, 2, 4, 5, 6, 3, 2, 5\]

从结果发现,已经将我们定义的一个四层的list列表完全的拆分了。

3、filter()数据筛选

创建一组list列表数据并筛选出列表中的值大于10的数据并返回筛选后的列表数据。

list\_ = (\[-1, 0, 1, 2, 4, 6, 10, 11, 12, 15, 17, 18\] |pipe.filter(lambda a: a > 10) |pipe.Pipe(list)
)pprint(list\_)# \[11, 12, 15, 17, 18\]

4、groupby()分组运算

创建一个包含属性姓名、年龄、班级的list列表,然后可以按照某一个属性对其完成分组。

list\_ = (\[{'姓名': 'Pytonh','年龄': '19','班级': '1710'},{'姓名': 'Pytonh','年龄': '20','班级': '1810'}\] |pipe.groupby(lambda item: item\['姓名'\]) |pipe.Pipe(list)
)pprint(list\_)# \[('Pytonh', <itertools.\_grouper object at 0x003EE6B8>)\]

这时,虽然返回了分组的结果,但是没有对其进行运算,此时可以搭配下面的select()函数完成运算。

5、select()遍历结果集

使用上一步中分组出来的数据结果,使用select函数参与运算计算出姓名为’Python 集中营’的结果有多少。

list\_ = (\[{'姓名': 'Pytonh ','年龄': '19','班级': '1710'},{'姓名': 'Pytonh ','年龄': '20','班级': '1810'}\] |pipe.groupby(lambda item: item\['姓名'\]) |pipe.select(lambda groups: {groups\[0\]: len(list(groups\[1\]))}) |pipe.Pipe(list)
)pprint(list\_)# \[{'Pytonh ': 2}\]

6、sort()数据排序

sort函数的排序使用相对于分组来说就更简单了,同样创建一组列表数据来展示效果。

list\_ = (\[-1, 2, 5, 7, 9\] |pipe.sort(reverse=True) |pipe.Pipe(list)
)pprint(list\_)# \[9, 7, 5, 2, -1\]

sort函数的reverse属性设置为True的时候为降序排序,设置为False时则为升序排序。

list\_ = (\[-1, 2, 5, 7, 9\] |pipe.sort(reverse=False) |pipe.Pipe(list)
)pprint(list\_)# \[-1, 2, 5, 7, 9\]

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

vue图片预览 90度旋转

要在 Vue 3 中实现点击按钮让图片旋转 90 度&#xff0c;你可以使用 CSS 转换和 Vue 的事件处理来完成。这里是一个基本的示例&#xff1a; 首先&#xff0c;在你的组件的模板中&#xff0c;添加一个按钮和一个应用转换的图像&#xff1a; <template> <div> <…

使用粗糙贴图制作粗纹皮革手提包3D模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

UniGui使用CSS优化PageControl

如题直接上代码 .x-tab-bar-default-top{background-image:none!important;background-color:#FFF !important;border-color:#f0f0f0 !important;border-left:none!important;border-right:none!important}.x-tab-bar-strip-default{border-color:#f0f0f0 !important;backgrou…

Redisson出现问题总结

org.redisson.client.RedisAuthRequiredException: NOAUTH Authentication required… channel: 出现此问题的原因为没有redis权限。解决方案在setAddress()后面加上setPassword()方法。 config.useSingleServer().setAddress("redis://localhost:6379").setPasswo…

Hugging Face 给普通用户提供了一个 2 vCPU 16GB 的免费空间

Hugging Face 给普通用户提供了一个 2 vCPU 16GB 的免费空间&#xff0c;并且支持部署 Gradio 构建的应用程序&#xff0c;非常方便&#xff0c;下面我们进入 https://huggingface.co/spaces/ &#xff0c;点击创建空间。

MySQL一 | SQL语句

目录 DDL语句 查询所有数据库 查询当前数据库 切换数据库 创建数据库 创建表 删除表 查询当前数据库所有表 查询表结构 查询指定表的键表语句 添加字段 修改数据类型 修改字段名和字段类型 删除字段 修改表名 删除表 删除指定表&#xff0c;并重新创建该表…

CCF: 202012-2 期末预测之最佳阈值--C++

#include<iostream> #include<bits/stdc.h>using namespace std;int main() {int n;//m位同学的数据int y[100001];//记录m位同学的安全指数int result[100001];//记录m位同学最后的挂科情况cin>>n;for(int i1;i<n;i){cin>>y[i]>>result[i];}…

unity 模型生成PNG图片并导出(可以任意控制方向和大小,本文提供三种方案)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、插件RuntimePreviewGenerator&#xff08;方案一&#xff09;二、unity 官方提供的接口&#xff08;方案二&#xff09;三、方法三&#xff0c;可以处理单个模型&#xff0c;也…

华为OD机试真题-智能成绩表-2023年OD统一考试(C卷)

题目描述: 小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗? 输入描述: 第1行输入两个整数,学生人数n和科目数量m。0<n<100,0<m<10 第2行输入m个科目名称,彼此之间用空格隔开。科目名称只由英文字母构成,单个长度不超过10个字符…

Linux下C++静态链接库的生成以及使用

目录 一.前言二.生成静态链接库三.使用静态链接库 一.前言 这篇文章简单讨论一下Linux下如何使用gcc/g生成和使用C静态链接库&#xff08;.a文件&#xff09;。 二.生成静态链接库 先看下目录结构 然后看下代码 //demo.h#ifndef DEMO_H #define DEMO_H#include<string&g…

线程状态:深入理解多任务并发编程中的精髓

目录 引言 1. 线程状态概述 1.1 定义 1.2 线程状态图 2. 线程状态的转换 2.1 新建到就绪 2.2 就绪到运行 2.3 运行到阻塞 2.4 运行到等待和超时等待 2.5 运行到终止 3. 实际编程中的线程状态管理 3.1 合理使用wait()和notify() 3.2 谨慎处理阻塞状态 3.3 使用线程…

面试题之Docker篇

1、Docker 是什么&#xff1f; Docker一个开源的应用容器引擎&#xff0c;是实现容器技术的一种工具&#xff0c;让开发者可以打包他们的应用以及环境到一个镜像中&#xff0c;可以快速的发布到任何流行的操作系统上。 2、Docker的三大核心是什么? 镜像&#xff1a;Docker的镜…

Elastic Support Hub 转向语义搜索

作者&#xff1a;Chris Blaisure 我们很高兴与大家分享 Elastic Support Hub 最近的增强功能&#xff1a;它现在由语义搜索提供支持&#xff01; 但在我们更详细地了解对 Elastic Support Hub 所做的更改及其对客户的影响之前&#xff0c;我们需要花点时间解释语义搜索的概念&…

el-form表单校验值为0提示校验不通过

el-form表单校验输入框值为0时提示校验不通过 配置validator自定义校验方法 这里举例在结构代码里加入校验规则 <el-form-item:prop"num":rules"[{required: true,message: 请输入数量,trigger: change,},{validator,trigger: blur}]" ><el-inpu…

【安卓】安卓xTS之Media模块 学习笔记(3) VTS测试

1. 背景 接下来进行正式的VTS测试。本章节还是以Media模块相关进行介绍。 VTS主要测的是内核和HAL层&#xff0c;media的hal层是以openMax&#xff08;即将废弃&#xff0c;今日2023.12&#xff09; 和 Codec2 (后续主流) 接口为主。 这里我们只看Codec2的要求&#xff0c;CDD…

统计字符

输入一行字符&#xff0c;分别统计出包含英文字母、空格、数字和其它字符的个数。 数据范围&#xff1a;输入的字符串长度满足1≤n≤1000 输入描述&#xff1a;输入一行字符串&#xff0c;可以有空格 输出描述&#xff1a;统计其中英文字符&#xff0c;空格字符&#xff0c;数…

MongoDB的插入文档、更新文档语句

本文主要介绍MongoDB的插入文档、更新文档语句。 目录 MongoDB插入文档MongoDB更新文档 MongoDB插入文档 在MongoDB中&#xff0c;可以通过使用insertOne或insertMany方法向集合中插入文档。 insertOne方法可以插入一个文档&#xff0c;例如&#xff1a; db.collection.inse…

Android 等待view 加载布局完成 (包括动态生成View)

前言 在实际开发中&#xff0c;有很多组件需要 根据数据&#xff0c;动态生成&#xff0c;或者 追加 / 减少 子view&#xff0c;由于View布局需要时间&#xff0c;此时想要获取父View的最新宽高值&#xff0c;要么手动测量&#xff0c;要么等待布局完成后再获取&#xff1b; …

“天作之合”softmax与CrossEntropy

本文从 max \text{max} max到 logsumexp ⁡ \operatorname{logsumexp} logsumexp&#xff0c;再到 softmax \text{softmax} softmax进行了一个简单推导&#xff0c;最后说明了 softmax \text{softmax} softmax与CrossEntropy的关系。希望帮助大家理解多分类损失函数CrossEntrop…

树莓派学习:学习opencv+用opencv获取树莓派mjpg摄像头视频流

目录 前提步骤 打开树莓派摄像头 查看是否有图像&#xff0c;登录游览器打开树莓派IP地址的8080端口 获取mjpg的视频流url 代码 先设定好mjpg的视频流的url 利用opencv库中的v2.VideoCapture类读取mjpg视频流 cv2.VideoCapture() 检查摄像头是否成功打开&#xff0c;…