Pandas条件筛选 | Python技能树征题
生活随笔
收集整理的這篇文章主要介紹了
Pandas条件筛选 | Python技能树征题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
相關知識
篩選是數據處理中非常頻繁使用的功能,而Pandas對表格型數據(Pandas.DataFrame)已經封裝了非常完善的條件篩選功能,他們支持下面五種比較運算符和兩種邏輯運算符。
| > | 大于 |
| < | 小于 |
| == | 等于 |
| >= | 大于等于 |
| <= | 小于等于 |
| & | 且 |
| | | 或 |
多個比較運算符構成的條件語句之間可以用邏輯運算符進行組合,不過每個條件語句需要用圓括號括起來。
條件篩選語句選針對每一列進行,因此格式為df['列名'] 條件運算符 條件值,如df['A'] > 10。該條件可以直接傳給dataframe用于行選擇,因此形式為df[條件語句],如df[df['A'] > 10]即可挑選出所有第A列大于10的行。上述用法等價于df.loc[條件語句], 不過,loc方法可以進一步挑選輸出列,如df.loc[df['A'] > 10, ['A', 'B']]即表示挑選出所有第A列大于10 的行且只輸出A和B兩列的結果。
題目
給定下面的一個表格型數據的定義,試分別完成下面三道題。
| 張三 | 男 | 61 | 90 | 59 |
| 趙四 | 女 | 91 | 92 | 93 |
| 王五 | 男 | 55 | 45 | 40 |
| 李六 | 女 | 90 | 60 | 59 |
| 劉七 | 男 | 90 | 90 | 90 |
| 林八 | 女 | 50 | 50 | 50 |
| 莫九 | 男 | 45 | 45 | 80 |
- 將所有性別為女的記錄挑選出來
- 將所有語文和數學成績及格且性別為男的記錄挑選出來
- 將所有語文成績大于等于90分或者數學成績大于90分的記錄挑選出來且只保留姓名、性別和英語成績
思路及答案
三道題的答案都可以通過上面的條件篩選的知識點來實現,具體代碼如下。
import pandas as pdcolumns = ['name', '性別', '語文', '數學', '英語'] data = [['張三', '男', 61, 90, 59],['趙四', '女', 91, 92, 93],['王五', '男', 55, 45, 40],['李六', '女', 90, 60, 59],['劉七', '男', 90, 90, 90],['林八', '女', 50, 50, 50],['莫九', '男', 45, 45, 80] ]df = pd.DataFrame(data, columns=columns)# 第一題,我們直接條件篩選 rst1 = df[df['性別'] == '女'] print(rst1)# 第二題,多調節級聯 rst2 = df[(df['語文'] > 60) & (df['數學'] > 60) & (df['性別'] == '男')] print(rst2)# 第三題,條件篩選并輸出特定列 rst3 = df.loc[(df['語文'] >= 90) | (df['數學'] > 90), ['name', '性別', '英語']] print(rst3)運行結果如下。
name 性別 語文 數學 英語 1 趙四 女 91 92 93 3 李六 女 90 60 59 5 林八 女 50 50 50name 性別 語文 數學 英語 0 張三 男 61 90 59 4 劉七 男 90 90 90name 性別 英語 1 趙四 女 93 3 李六 女 59 4 劉七 男 90Process finished with exit code 0總結
以上是生活随笔為你收集整理的Pandas条件筛选 | Python技能树征题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 0459-Repeated Substr
- 下一篇: websocket python爬虫_p