溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么利用pandas實現(xiàn)按條件選擇

發(fā)布時間:2021-07-05 15:56:12 來源:億速云 閱讀:543 作者:Leah 欄目:大數(shù)據(jù)

Python中怎么利用pandas實現(xiàn)按條件選擇,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。


numpy.where 方法

Excel 函數(shù)中有一個初學者都能馬上學會的函數(shù)——IF 函數(shù),而在 pandas 中卻沒有對應效果的方法,這是因為 numpy 已經有了對應的實現(xiàn)—— where。

他能根據(jù)條件(true 或者 false) 返回不同的值。由于需要使用 numpy 的方法,因此代碼的開始需要導入 numpy 包:

1import pandas as pd
2import numpy as np
 
 

場景

如下學生成績表:

Python中怎么利用pandas實現(xiàn)按條件選擇




  • 高于等于60分算合格,C列打上"是",否則打上"否"

  • 典型的根據(jù)條件選擇某個值的需求

 

怎么解決

如此簡單的需求,Excel 中一個 IF 函數(shù)輕松解決:

Python中怎么利用pandas實現(xiàn)按條件選擇

  • IF 函數(shù)第一參數(shù)是條件,第二參數(shù)是當?shù)谝粭l件為 true 時的返回,第三參數(shù)是當?shù)谝粭l件為 false 時的返回

在使用 numpy.where 方法時的邏輯與上述 Excel 的 IF 函數(shù)一致:

Python中怎么利用pandas實現(xiàn)按條件選擇

1df = pd.read_excel('data.xlsx', 'sp1')
2df['res'] = np.where(df.成績>=60,'是','否')
3df
 
  • 行2:np.where 各個參數(shù)都能接受 pandas 的列(Series)


 

性能優(yōu)越

如果你看過本系列文章會發(fā)現(xiàn),怎么當初入門 Python 的時候,學習的各種處理列表、字典的技巧全都用不上了。甚至 if、for 循環(huán)都很少用到了。

在 pandas 中其實也可以選擇用 Python 的基本語法處理。

比如上面的例子,我們可以用 apply:

Python中怎么利用pandas實現(xiàn)按條件選擇

1df = pd.read_excel('data.xlsx', 'sp1')
2
3def ap_where(x):
4    if x >= 60:
5        return '是'
6    return '否'
7
8df['res'] = df.成績.apply(ap_where)
9df
 

看完上述內容,你們掌握Python中怎么利用pandas實現(xiàn)按條件選擇的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI