【Python】進階學習:pandas--isin()用法詳解

【Python】進階學習:pandas–isin()用法詳解

在這里插入圖片描述

🌈 個人主頁:高斯小哥
🔥 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程👈 希望得到您的訂閱和支持~
💡 創作高質量博文(平均質量分92+),分享更多關于深度學習、PyTorch、Python領域的優質內容!(希望得到您的關注~)


🌵文章目錄🌵

  • 📚 一、pandas庫簡介
  • 🔍 二、isin()方法基礎
    • 📋 示例1:篩選DataFrame中的特定值
    • 📋 示例2:結合多個條件篩選
  • 🎯 三、高級用法與技巧
    • 📋 示例3:篩選DataFrame中多個列的值
    • 📋 示例4:結合set數據結構使用isin()
  • 🎉 四、總結
  • 🤝 五、期待與你共同進步

📚 一、pandas庫簡介

??pandas是Python中一個非常流行的數據處理庫,它提供了大量的數據結構(如Series和DataFrame)以及數據分析工具,使得數據處理變得既簡單又高效。在pandas中,isin()是一個非常重要的方法,它允許我們根據一個值列表來篩選數據。

🔍 二、isin()方法基礎

??isin()方法用于過濾數據框(DataFrame)或序列(Series)中的值,僅保留在給定列表中出現的值。

📋 示例1:篩選DataFrame中的特定值

假設我們有一個DataFrame df,其中包含學生的信息:

import pandas as pd# 創建一個示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Subject': ['Math', 'Science', 'Math', 'History', 'Science'],'Score': [90, 85, 92, 78, 88]
}
df = pd.DataFrame(data)# 篩選Subject列為'Math'或'Science'的學生
selected_students = df[df['Subject'].isin(['Math', 'Science'])]
print(selected_students)

輸出:

      Name  Subject  Score
0    Alice     Math     90
1      Bob  Science     85
2  Charlie     Math     92
4      Eve  Science     88

📋 示例2:結合多個條件篩選

isin()方法可以與其他條件篩選方法結合使用,以創建更復雜的篩選條件。

import pandas as pd# 創建一個示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Subject': ['Math', 'Science', 'Math', 'History', 'Science'],'Score': [90, 85, 92, 78, 88]
}
df = pd.DataFrame(data)# 篩選Score大于85且Subject為'Math'或'Science'的學生
combined_filter = df[(df['Score'] > 85) & df['Subject'].isin(['Math', 'Science'])]
print(combined_filter)

輸出:

      Name  Subject  Score
0    Alice     Math     90
2  Charlie     Math     92
4      Eve  Science     88

🎯 三、高級用法與技巧

??isin()方法不僅限于簡單的值匹配,還可以與其他pandas功能結合使用,以實現更高級的數據篩選。

📋 示例3:篩選DataFrame中多個列的值

我們可以同時檢查多個列中的值是否存在于給定的列表中。

import pandas as pd# 創建一個示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Subject': ['Math', 'Science', 'Math', 'History', 'Science'],'Score': [90, 85, 92, 78, 88]
}
df = pd.DataFrame(data)# 篩選Name為'Alice'或'Charlie',且Subject為'Math'或'Science'的學生
multi_column_filter = df[(df['Name'].isin(['Alice', 'Charlie']) & df['Subject'].isin(['Math', 'Science']))]
print(multi_column_filter)

輸出:

      Name Subject  Score
0    Alice    Math     90
2  Charlie    Math     92

📋 示例4:結合set數據結構使用isin()

使用set數據結構可以更有效地執行isin()操作,尤其是當比較值列表非常大時。

import pandas as pd# 創建一個示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Subject': ['Math', 'Science', 'Math', 'History', 'Science'],'Score': [90, 85, 92, 78, 88]
}
df = pd.DataFrame(data)# 將要匹配的值轉換為set以提高效率
subjects_set = {'Math', 'Science'}# 篩選Subject列為'Math'或'Science'的學生
set_filter = df[df['Subject'].isin(subjects_set)]
print(set_filter)

輸出:

      Name  Subject  Score
0    Alice     Math     90
1      Bob  Science     85
2  Charlie     Math     92
4      Eve  Science     88

🎉 四、總結

??isin()是pandas中一個非常實用的方法,它允許我們根據給定的值列表來篩選數據。通過結合不同的條件和技巧,我們可以實現復雜的數據篩選任務。在使用isin()方法時,保持代碼清晰、高效和易于維護非常重要。通過遵循最佳實踐,我們可以確保篩選操作能夠快速、準確地返回所需的結果。

🤝 五、期待與你共同進步

??在數據處理的旅程中,我們始終在學習和成長。希望這篇博客能夠幫助你更好地理解和應用pandas中的isin()方法。如果你有任何疑問或建議,歡迎在評論區留言,我們一起探討和學習。同時,也期待你分享你的經驗和見解,讓我們共同進步!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【NDK系列】Android tombstone文件分析

文件位置 data/tombstone/tombstone_xx.txt 獲取tombstone文件命令: adb shell cp /data/tombstones ./tombstones 觸發時機 NDK程序在發生崩潰時,它會在路徑/data/tombstones/下產生導致程序crash的文件tombstone_xx,記錄了死亡了進程的…

單細胞Seurat - 細胞聚類(3)

本系列持續更新Seurat單細胞分析教程,歡迎關注! 維度確定 為了克服 scRNA-seq 數據的任何單個特征中廣泛的技術噪音,Seurat 根據 PCA 分數對細胞進行聚類,每個 PC 本質上代表一個“元特征”,它結合了相關特征集的信息。…

深入測探:用Python玩轉分支結構與循環操作——技巧、場景及面試寶典

在編程的世界里,分支結構和循環操作是構建算法邏輯的基礎磚石。它們如同編程的“鹽”,賦予代碼生命,讓靜態的數據跳躍起來。本文將帶你深入探索Python中的分支結構和循環操作,通過精心挑選的示例和練習題,不僅幫助你掌…

mysql5*-mysql8 區別

1.Mysql5.7-Mysql8.0 sysbench https://github.com/geekgogie/mysql57_vs_8-benchmark_scripts 1.讀、寫、刪除更新 速度 512 個線程以后才會出現如下的。 2.刪除速度 2.事務處理性能 3.CPU利用率 mysql8 利用率高。 4.排序 5.7 只能ASC,不能降序 數據越來越大

牢記于心單獨說出來的知識點(后續會加)

第一個 非十進制(八進制,十六進制)寫在文件中它本身就是補碼,計算機是不用進行內存轉換,它直接存入內存。(因為十六進制本身是補碼,所以計算機里面我們看到的都是十六進制去存儲) …

Qt 簡約美觀的加載動畫 文本風格 第八季

今天和大家分享一個文本風格的加載動畫, 有兩類,其中一個可以設置文本內容和文本顏色,演示了兩份. 共三個動畫, 效果如下: 一共三個文件,可以直接編譯 , 如果對您有所幫助的話 , 不要忘了點贊呢. //main.cpp #include "LoadingAnimWidget.h" #include <QApplic…

MySQL:開始深入其數據(一)DML

在上一章初識MySQL了解了如何定義數據庫和數據表&#xff08;DDL&#xff09;&#xff0c;接下來我們開始開始深入其數據,對其數據進行訪問&#xff08;DAL&#xff09;、查詢DQL&#xff08;&#xff09;和操作(DML)等。 通過DML語句操作管理數據庫數據 DML (數據操作語言) …

一文搞定 FastAPI 路徑參數

路徑參數定義 路徑操作裝飾器中對應的值就是路徑參數,比如: from fastapi import FastAPI app = FastAPI()@app.get("/hello/{name}") def say_hello(name: str):return {

突破編程_C++_STL教程( list 的基礎知識)

1 std::list 概述 std::list 是 C 標準庫中的一個雙向鏈表容器。它支持在容器的任何位置進行常數時間的插入和刪除操作&#xff0c;但不支持快速隨機訪問。與 std::vector 或 std::deque 這樣的連續存儲容器相比&#xff0c;std::list 在插入和刪除元素時不需要移動其他元素&a…

計算機網絡之傳輸層 + 應用層

.1 UDP與TCP IP中的檢驗和只檢驗IP數據報的首部, 但UDP的檢驗和檢驗 偽首部 首部 數據TCP的交互單位是數據塊, 但仍說TCP是面向字節流的, 因為TCP僅把應用層傳下來的數據看成無結構的字節流, 根據當時的網絡環境組裝成大小不一的報文段.10秒內有1秒用于發送端發送數據, 信道…

【Python】進階學習:pandas--groupby()用法詳解

&#x1f4ca;【Python】進階學習&#xff1a;pandas–groupby()用法詳解 &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;Matplotlib之旅&#xff1a;零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&#x1f448;…

Python算法100例-3.5 親密數

1.問題描述2.問題分析3.算法設計4.確定程序框架5.完整的程序6.問題拓展 1&#xff0e;問題描述 如果整數A的全部因子&#xff08;包括1&#xff0c;不包括A本身&#xff09;之和等于B&#xff0c;且整數B的全部因子&#xff08;包括1&#xff0c;不包括B本身&#xff09;之和…

中國電子學會2020年6月份青少年軟件編程Sc ratch圖形化等級考試試卷四級真題。

第 1 題 【 單選題 】 1.執行下面程序&#xff0c;輸入4和7后&#xff0c;角色說出的內容是&#xff1f; A&#xff1a;4&#xff0c;7 B&#xff1a;7&#xff0c;7 C&#xff1a;7&#xff0c;4 D&#xff1a;4&#xff0c;4 2.執行下面程序&#xff0c;輸出是&#xff…

Oracle自帶的網絡工具(計算傳輸redo需要的帶寬,使用STATSPACK,計算redo壓縮率,db_ultra_safe)

--根據primary database redo產生的速率,計算傳輸redo需要的帶寬. 除去tcp/ip網絡其余30%的開銷,計算需要的帶寬公式: 需求帶寬((每秒產生redo的速率峰值/0.75)*8)/1,000,000帶寬(Mbps) --可以通過去多次業務高峰期的Statspack/AWR獲取每秒產生redo的速率峰值,也可以通過查詢視…

post請求體內容無法重復獲取

post請求體內容無法重復獲取 為什么會無法重復讀取呢&#xff1f; 以tomcat為例&#xff0c;在進行請求體讀取時實際底層調用的是org.apache.catalina.connector.Request的getInputStream()方法&#xff0c;而該方法返回的是CoyoteInputStream輸入流 public ServletInputStream…

CVE-2016-5195 復現記錄

文章目錄 poc前置知識頁表與缺頁異常/proc/self/mem的寫入流程madvise 漏洞點修復 Dirty COW臟牛漏洞是一個非常有名的Linux競爭條件漏洞&#xff0c;雖然早在2016年就已經被修復&#xff0c;但它依然影響著眾多古老版本的Linux發行版&#xff0c;如果需要了解Linux的COW&#…

Redis7 實現持久化的三種方式

1、概述 1.1、Redis持久化的重要性 數據恢復&#xff1a;Redis是一個內存數據庫&#xff0c;如果系統或服務宕機&#xff0c;內存中的數據將會丟失。Redis的持久化機制可以把數據保存到磁盤上&#xff0c;以便在系統重啟后恢復數據。這是Redis持久化最基本也是最重要的功能。…

JCL中IEFBR14和COND

JCL中IEFBR14和COND ? COND CODE&#xff0c;就是反映JCL中STEP運行狀態的參數&#xff0c;JCL正常終了的COND CODE 是0000&#xff0c;另外筆者在執行某些工具JCL時候&#xff0c;比方說簡單一個COMPARE吧&#xff0c;可能會出現0012、0004或者0016&#xff0c;0001&#xf…

JSON與Object等的相互轉換

JSON與Object的轉換 // 將 Object 對象轉換為 String 類型 String jsonString = JSON.toJSONString(body);// 將 String 或 byte[] 轉換為 JSONObject 類型 JSONObject jsonObject = JSONObject.parseObject(jsonString); // 根據鍵key獲取 JSONObject 中的某一個鍵值對的值 S…

數據結構:棧和隊列的實現附上源代碼(C語言版)

目錄 前言 1.棧 1.1 棧的概念及結構 1.2 棧的底層數據結構選擇 1.2 數據結構設計代碼&#xff08;棧的實現&#xff09; 1.3 接口函數實現代碼 &#xff08;1&#xff09;初始化棧 &#xff08;2&#xff09;銷毀棧 &#xff08;3&#xff09;壓棧 &#xff08;4&…