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提供了大量能使我们快速便捷地处理数据的函数和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI文档助手,当下热门的AI文档助手【2024】

在当今信息爆炸的时代&#xff0c;文档创作的需求愈发庞大。为了满足用户对高效、准确、原创性文档的需求&#xff0c;人工智能技术的应用日益广泛。本文将专心分享AI文档助手领域的热门推荐。 AI文档助手的背景与应用 AI文档助手作为人工智能技术在文档创作领域的一大应用&am…

跨平台的文本编辑器——CudaText

CudaText 是一个轻量级、跨平台的文本编辑器&#xff0c;它免费开源&#xff0c;启动速度非常快&#xff0c;有拓展功能&#xff0c;可安装插件。 下载 浏览器搜索框输入CudaText - Home进行搜索&#xff0c; 选择官网进入&#xff0c; 进入官网界面如下&#xff1a;选择点击…

孩子都能学会的FPGA:第二十六课——用FPGA实现CIC抽取滤波器

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

windows系统如何解决爆满C盘

目录 方法一&#xff1a;清理临时文件 方法二&#xff1a;清理临时文件 方法三&#xff1a;清理系统更新文件 方法四&#xff1a; 设置自动清理无用文件 4.1 清理缓存 4.2 打开存储感知 4.3 调整新内容存储地方 方法一&#xff1a;清理临时文件 代码&#xff1a;win …

Python框架篇(4):FastApi-错误处理

提示: 微信搜索【猿码记】回复 【fastapi】即可获取源码信息~ 1.验证错误 1.1 默认返回 当传参不符合模型验证规则时&#xff0c;默认错误信息和格式返回如下: { "detail": [ { "loc": [ "body", "age" …

22、pytest多个参数化的组合

官方实例 # content of test_multi_parametrie.py import pytestpytest.mark.parametrize("x",[0,1]) pytest.mark.parametrize("y",[2,3]) def test_foo(x,y):print("{}-{}".format(x,y))pass解读与实操 要获得多个参数化参数的所有组合&…

科学指南针助力江西高校开展《透射电子显微镜简介及案例分析课程》讲座

2023年11月&#xff0c;科学指南针与江西各大高校合作&#xff0c;共同开展了一场关于《透射电子显微镜的简介及案例分析课程》讲座。该讲座旨在加强学生对于透射电子显微镜的了解&#xff0c;提高他们在科学研究中的实践能力。 透射电子显微镜&#xff08;简称TEM&#xff09…

【LeetCode】每日一题 2023_12_9 下一个更大的数值平衡数(枚举/打表二分)

文章目录 刷题前唠嗑题目&#xff1a;下一个更大的数值平衡数题目描述代码与解题思路官方解法 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 题目&#xff1a;下一个更大的数值平衡数 题目链接&#xff1a;2048. 下一个更大的数值平衡数 …

C++11原子操作atomic

文章目录 原子操作atomic原子操作的相关函数原子操作的特点“平凡的”与“合格的” 原子操作atomic 前面我们介绍了互斥锁等一系列多线程相关操作&#xff0c;这里我们来说下原子操作atomic。 可以理解为原子变量就是将上面的操作进行了整合的一个全新变量&#xff0c;但是实际…

Qt 容器QGroupBox带有标题的组框框架

控件简介 QGroupBox 小部件提供一个带有标题的组框框架。一般与一组或者是同类型的部件一起使用。教你会用,怎么用的强大就靠你了靓仔、靓妹。 用法示例 例 qgroupbox,组框示例(难度:简单),使用 3 个 QRadioButton 单选框按钮,与QVBoxLayout(垂直布局)来展示组框的…

远程控制如何赋能智能制造?贝锐向日葵制造业场景案例解析

随着数字化转型在制造业的不断深入&#xff0c;企业在产线端也逐渐投入更多智能化设备&#xff0c;数字化、智能化设备其中一个比较显著的优势就是可以依托互联网实现远程运维和调试&#xff0c;大大提升产线设备的稳定性和工作效率&#xff1b;而远程调试运维一个重要的实现方…

数据表排序

指针用的有点少了&#xff0c;有点不适应 用的冒泡排序 代码如下&#xff1a; #include<stdio.h> int num[100][100]; int * p[100], jud[100]; int judge(int i, int j, int rank); int m, n, k;int main(void) {scanf("%d%d%d", &m, &n, &k);f…

飞天使-linux操作的一些技巧与知识点

命令行光标移动到行首行尾 ctrl a 跳到首 ctrl e 跳到尾/etc/passwd rpm 包格式 RPM&#xff08;Red Hat Package Manager&#xff09;是一种常用的Linux软件包管理系统&#xff0c;它使用特定的命名规则来标识和命名软件包。RPM包的名称格式通常遵循以下规则&#xff1a;…

Flutter 开发问题摘要

系统&#xff1a;MacOS 14 开发工具&#xff1a;vscode Flutter版本&#xff1a;3.16.3 1.Error: To set up CocoaPods for ARM macOS, run: 解决方式&#xff1a; 在项目的ios文件目录下面执行下面的命令&#xff1a; arch -x86_64 pod install 执行结果&#xff1a;

SVPWM原理及simulink

关注微♥“电击小子程高兴的MATLAB小屋”获得专属优惠 一.SVPWM原理 SPWM常用于变频调速控制系统&#xff0c;经典的SPWM控制主要目的是使变频器的输出电压尽量接近正弦波&#xff0c;并未关注输出的电流波形。而矢量控制的最终目的是得到圆形的旋转磁场&#xff0c;这样就要求…

pr抖音素材42个手机竖屏抖音视频转场特效PR剪辑模板

酷炫、富有创意的Premiere Pro 视频转场动画过渡效果pr模板免费下载。增强内容演示、幻灯片、抖音、社交媒体广告、预告片、促销等视频画面切换效果。 来自PR模板网&#xff1a;https://prmuban.com/36404.html

TCP对数据的拆分

应用程序的数据一般都比较大&#xff0c;因此TCP会按照网络包的大小对数据进行拆分。 当发送缓冲区中的数据超过MSS的长度&#xff0c;数据会被以MSS长度为单位进行拆分&#xff0c;拆分出来的数据块被放进单独的网路包中。 根据发送缓冲区中的数据拆分情况&#xff0c;当判断…

12.8 作业

1&#xff0c; 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#…

PyQt6 QCalendarWidget日历控件

​锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计39条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话…

Python random模块及用法

random 模块主要包含生成伪随机数的各种功能变量和函数。 在 Python 的交互式解释器中先导入 random 模块&#xff0c;然后输入 random.__all__ 命令&#xff08;__all__ 变量代表了该模块开放的公开接口&#xff09;&#xff0c;即可看到该模块所包含的全部属性和函数&#x…