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.pswp.cn/news/209498.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209498.shtml
英文地址,請注明出處:http://en.pswp.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;…