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,一经查实,立即删除!

相关文章

使用粗糙贴图制作粗纹皮革手提包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…

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

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

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

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

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;我们需要花点时间解释语义搜索的概念&…

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

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

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; …

scikit-learn实现线性回归

要学习scikit-learn,我们必须要到scikit-clearn的官网中去查看公式和原理 scikit-learn 官网 scikit-learn 中文社区 进入官网一以后我们找到回归&#xff0c;然后再有监督学习中找到线性模型 scikit-learn实现简单的线性回归 公式&#xff1a; L2范数是指向量中每个元素的平…

Java+Swing: 主界面的窗体 整理8

主界面的写法跟之前登录界面的窗体写法大致相同&#xff0c;在主界面中主要是窗体的大小的设置 package com.student_view;import com.utils.DimensionUtil; import sun.applet.Main;import javax.swing.*; import java.awt.*; import java.net.URL;/*** Author&#xff1a;xie…

全面覆盖,无所不包:C++ 编程必备指南 | 开源日报 No.99

fffaraz/awesome-cpp Stars: 51.0k License: MIT 这个项目是一个精心策划的 C(或者 C) 框架、库、资源和其他有趣东西的列表。它收集了各种标准库&#xff0c;如 STL 容器和算法&#xff1b;不同领域的框架&#xff0c;比如人工智能、异步事件循环等&#xff1b;以及一系列功…

【人工智能Ⅰ】实验7:K-means聚类实验

实验7 K-means聚类实验 一、实验目的 学习K-means算法基本原理&#xff0c;实现Iris数据聚类。 二、实验内容 应用K-means算法对iris数据集进行聚类。 三、实验结果及分析 0&#xff1a;输出数据集的基本信息 参考代码在main函数中首先打印了数据、特征名字、目标值、目标…

【上海大学数字逻辑实验报告】四、组合电路(三)

一、 实验目的 掌握多路选择器74LS151的原理。掌握译码器74LS138的原理。学会在Quartus II上使用多路选择74LS151设计电路。学会在Quartus II上使用译码器74LS138设计电路。 二、 实验原理 多路选择器又称数据选择器或多路开关&#xff0c;它是一种多路输入单路输出的组合逻…

HHDESK右键管理简介

在HHDESK管理文件&#xff0c;除了基本的打开、删除、复制、粘贴、重命名外&#xff0c;还有多种便捷编辑方式。 可以分别以下列模式打开文档&#xff1a; 文本模式即是以文本编辑器打开文档。 1 二进制模式 可进行二进制编辑。 2 JSON模式 可对JSON文件进行直观的解析…

机器学习中的特征工程

1 特征工程概述 特征工程是机器学习中的一个关键步骤&#xff0c;在机器学习领域中占有非常重要的地位&#xff0c;是机器学习中不可或缺的一部分&#xff0c;下图展示了一个常规的机器学习流程&#xff1a; 特征工程涉及从原始数据中提取、选择和转换特征&#xff0c;以改善模…

“轻松管理文件,一键导出表格,让您的归档工作井井有条“

在忙碌的工作中&#xff0c;我们经常会被大量的文件和数据所困扰。如何有效地管理和整理这些资料&#xff0c;成为了一个让人头疼的问题。今天&#xff0c;我们向您介绍一款强大的文件管理工具——一键导出表格&#xff0c;帮助您轻松解决这个问题。 第一步&#xff0c;首先我们…

区块链实验室(30) - 区块链期刊:Distributed Ledger Technologies: Research and Practice

区块链涉及多学科及技术&#xff0c;众多期刊接收区块链文章。Distributed Ledger Technologies: Research and Practice是ACM出版集团的一本期刊。 Distributed Ledger Technologies: Research and Practice创刊历史很短&#xff0c;始于2022年&#xff0c;出版期数也不多。 载…