【Python】探索 Pandas 中的 where 方法:條件篩選的利器


那年夏天我和你躲在 這一大片寧靜的海
直到后來我們都還在 對這個世界充滿期待
今年冬天你已經不在 我的心空出了一塊
很高興遇見你 讓我終究明白
回憶比真實精彩
?????????????????????🎵 王心凌《那年夏天寧靜的海》


在數據分析中,Pandas 是一個強大且靈活的工具包,為數據操作和分析提供了豐富的功能。where 方法是 Pandas 中一個非常實用的功能,它允許我們基于條件篩選和處理數據。本文將詳細介紹 where 方法的用法,幫助你在數據處理中更高效地進行條件篩選和替換操作。

什么是 where 方法?

where 方法用于基于一個布爾條件篩選 DataFrame 或 Series 中的元素。它保留滿足條件的元素,對于不滿足條件的元素,where 方法可以將其替換為指定的值(默認情況下為 NaN)。

where 方法的基本語法

DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False)

cond: 一個布爾條件,可以是 DataFrame 或 Series。元素為 True 的位置會保留原值,False 的位置會被替換。
other: 替換值,默認是 NaN。
inplace: 是否在原 DataFrame 上進行操作,默認為 False。如果設為 True,將在原 DataFrame 上進行修改。
axis: 應用條件的軸,默認為 None。
level: 如果目標是 MultiIndex(層次化索引),可以指定級別。
errors: 錯誤處理方式,默認為 ‘raise’。
try_cast: 嘗試轉換到相同的類型,默認為 False。

基本用法示例

以下是一些具體示例,展示如何在不同場景下使用 where 方法。

示例 1:基于條件篩選

假設我們有一個包含學生成績的 DataFrame,我們希望篩選出所有及格(分數>=60)的成績,其余的替換為 NaN。

import pandas as pd
import numpy as npdata = {'Math': [58, 80, 90, 45, 60], 'English': [75, 65, 50, 80, 85]}
df = pd.DataFrame(data)# 使用 where 方法進行條件篩選
df_passing = df.where(df >= 60)
print(df_passing)

輸出:

   Math  English
0   NaN     75.0
1  80.0     65.0
2  90.0      NaN
3   NaN     80.0
4  60.0     85.0
示例 2:指定替換值

我們可以指定一個替換值,而不是默認的 NaN。例如,將不及格的成績替換為 0。

df_passing = df.where(df >= 60, other=0)
print(df_passing)

輸出:

   Math  English
0     0       75
1    80       65
2    90        0
3     0       80
4    60       85
示例 3:多重條件篩選

我們可以基于多個條件進行篩選。例如,將數學和英語成績都及格的學生成績保留,其余替換為 NaN。

df_passing = df.where((df['Math'] >= 60) & (df['English'] >= 60))
print(df_passing)

輸出:

   Math  English
0   NaN     75.0
1  80.0     65.0
2   NaN      NaN
3   NaN      NaN
4  60.0     85.0
示例 4:在原 DataFrame 上進行操作

如果我們希望在原 DataFrame 上直接進行修改,可以使用 inplace=True。

df.where(df >= 60, other=0, inplace=True)
print(df)

輸出:

   Math  English
0     0       75
1    80       65
2    90        0
3     0       80
4    60       85

總結

Pandas 的 where 方法是一個功能強大的工具,用于基于條件篩選和替換數據。它不僅可以幫助我們快速篩選滿足特定條件的數據,還能靈活地處理不滿足條件的數據。通過本文的介紹,希望你能在實際數據處理中更好地應用 where 方法,提高數據處理的效率和準確性。無論是進行簡單的條件篩選還是復雜的多重條件處理,where 方法都能為你的數據分析工作提供極大的便利。

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

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

相關文章

小程序安卓手機點擊uni-data-select 下拉框選擇器會出現藍色陰影

解決方法:在導入的包中找到uni-data-select.vue,接著找到.uni-stat__select樣式,把cursor: pointer去掉。 如果出現穿透問題,uni-select__selector的z-index加高,默認是2。

數據庫MyBatis傳遞數組或集合

應用場景 假設你有兩個表,一個是商品信息表(表1,例如商品類別信息),另一個是庫存信息表(表2,記錄每種商品的庫存數量)。你想知道特定幾個商品類別 (通過其ID標識&#xf…

其他OpenAI API和功能

文章目錄 嵌入嵌入如何為ML模型翻譯語言內容審核模型Whisper 和 DALL.E除了文本補全功能,OpenAl用戶還可以使用其他一些功能但如果你想深入了解所有API那么請查看OpenAl的APl reference 頁面。 嵌入 由于模型依賴數學函數,因此它需要數值輸入來處理信息。然而,許多元素(如…

zdppy_api+vue3+antd開發前后端分離的預加載卡片實戰案例

后端代碼 import api import upload import timesave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")time.sleep(0.3)return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get(&qu…

UnityUGUI之二 CameraTargetTexture

在我們需要將3D物體呈現在2D視角時就可以使用TargetTexture,若想只顯示3D物體則需改變背景顏色,并且得再增加一個相機

智慧城市新利器:免費可視化工具助力高效管理

在智慧城市的建設中,實現高效的統籌管理是至關重要的。通過免費可視化工具“山海鯨可視化”,這一目標可以輕松達成。山海鯨可視化是一款免費可視化工具,具備二三維融合、易用性、安全性以及高質量畫面渲染等特色,是制作智慧城市可…

什么是數據安全?

網絡中的數據安全是一種無價的資產,數據信息在人們的日常生活中無處不在,但同時也面臨著前所未有的安全挑戰,那什么是數據安全呢?數據安全有著哪些特點呢? 數據安全主要就是指保護數據不會受到未經過授權的IP進行訪問、…

數據結構—選擇題

01-數據結構—判斷題 71.在數據結構中,從邏輯上可以把數據結構分為( )。 A. 動態結構和靜態結構 B. 緊湊結構和非緊湊結構 C. 線性結構和非線性結構 D. 內部結構和外部結構 答案:C 72.當輸入規模為n時,下列算法…

Elasticsearch及其相關工具的安裝

Elasticsearch及其相關工具的安裝 傳送門:https://pan.baidu.com/s/1d83Ak4kHOJHIgCC7Hhjikw 提取碼:ABCE 推薦使用8.12.12版本,8.14.1沒有找到ik分詞器 Elasticsearch 是什么 Elasticsearch檢查ES,是一個開源的分布式搜索和存…

AI推介-信息抽取(information extraction,NER)論文速覽(arXiv方向):2023.08.01-2024.10.15

文章目錄~ 1.Reconstructing Materials Tetrahedron: Challenges in Materials Information Extraction2.Utilizing Contextual Clues and Role Correlations for Enhancing Document-level Event Argument Extraction3.Benchmarking Large Language Models with Au…

如何獲得更高質量的回答-chatgpt

在與技術助手如ChatGPT進行交互時,提問的方式直接影響到你獲得的答案質量。以下是幾個關鍵的提問技巧,可以幫助你在與ChatGPT的互動中獲得更有效的回答: 1. 清晰明了的問題 技巧:確保問題清晰明了,避免含糊不清或模糊的…

短信群發平臺:驗證碼在不同行業的應用

1、手機號碼真實性驗證:用戶注冊會員時,為了獲取用戶真實的手機號碼,需要通過手機短信驗證功能,確保用戶填寫的手機號碼的真實性。 2、用戶找回密碼:用戶有可能會忘記掉自己的密碼甚至用戶名,如果該會員已…

Python自定義線程池,這么高效,是不是開了掛?

目錄 1、線程池基礎 ??? 1.1 線程池概念與優勢 1.2 Python標準庫concurrent.futures簡介 示例代碼:使用ThreadPoolExecutor執行簡單任務 2、利用ThreadPoolExecutor定制 ??? 2.1 創建自定義線程池類 示例代碼:自定義ThreadPoolExecutor子類 2.2 設置線程池參數與…

四.iOS核心動畫 - 圖層的視覺效果

引言 在前幾篇博客中我們討論了圖層的frame,bounds,position以及讓圖層加載圖片。但是圖層事實上不僅可以顯示圖片,或者規則的矩形塊,它還有一系列內建的特性來創建美麗優雅的頁面元素。在這篇博客中我們就來探索一下CALayer的視覺效果。 視覺效果 圖…

java筆記(29)——動態代理(工廠模式)【示例】

文章目錄 動態代理(工廠模式)接口類實體類代理類測試類 動態代理(工廠模式) 接口類 package com.itchen.proxytest;public interface Star {public abstract String sing(String name);public abstract void dance(); }實體類 …

轉化分析|一位數據分析師的實驗田復盤

花3個月時間,吭哧吭哧寫了80頁草稿的《投資——1. 知己知彼》,發布之前豪言壯語“2000閱讀量”,到現在累計72,真是piapia打臉!心態那個崩啊!! 朋友們吐槽內容太長、定位不明確、分析深度不夠&am…

手持式雷達流速儀的工作原理

TH-LS5手持式雷達流速儀基于雷達技術和多普勒效應進行工作。它發射一束微波信號到水體表面,當信號遇到水流時,會發生多普勒頻移。發射器發出的高頻電磁波信號(通常是微波信號)遇到流體后,部分信號會被反射回來。接收器接收到反射回來的信號&a…

開發一套java語言的智能導診需要什么技術?java+ springboot+ mysql+ IDEA互聯網智能3D導診系統源碼

開發一套java語言的智能導診需要什么技術?java springboot mysql IDEA互聯網智能3D導診系統源碼 醫院導診系統是一種基于互聯網和3D人體的智能化服務系統,旨在為患者提供精準、便捷的醫院就診咨詢服務。該系統整合了醫院的各種醫療服務資;智慧…

android gradle開發與應用(-)基礎

Gradle 是一個強大的自動化構建工具,廣泛用于多種編程語言和平臺,尤其是在 Android 應用開發中。Android Studio,作為官方的 Android 開發環境,使用 Gradle 作為其構建系統。了解 Gradle 的基礎對于有效地管理和構建 Android 項目…

【機器學習】機器學習與醫療健康在疾病預測中的融合應用與性能優化新探索

文章目錄 引言第一章:機器學習在醫療健康中的應用1.1 數據預處理1.1.1 數據清洗1.1.2 數據歸一化1.1.3 特征工程 1.2 模型選擇1.2.1 邏輯回歸1.2.2 決策樹1.2.3 隨機森林1.2.4 支持向量機1.2.5 神經網絡 1.3 模型訓練1.3.1 梯度下降1.3.2 隨機梯度下降1.3.3 Adam優化…