在進行資料分析時,我們經常需要根據特定條件來篩選資料。除了使用傳統的布林索引(Boolean Indexing)方式外,Pandas 也提供了一個更簡潔、類似 SQL 的語法:query()
。
本文將透過簡單易懂的範例,教你如何使用 query()
來快速篩選出符合條件的資料。
我們以下列數據為例子:
import pandas as pd
data = {
'班級': ['A', 'A', 'B', 'B', 'C', 'C'],
'姓名': ['小明', '小美', '小華', '小強', '小安', '小傑'],
'性別': ['男', '女', '男', '男', '女', '男'],
'成績': [85, 90, 78, 82, 95, 70]
}
df = pd.DataFrame(data)
print(df)
若我們想找出成績大於 80 分的學生,可以使用:
df.query('成績 > 80')
就能得到大於 80 分的學生:
班級 | 姓名 | 性別 | 成績 | |
---|---|---|---|---|
0 | A | 小明 | 男 | 85 |
1 | A | 小美 | 女 | 90 |
3 | B | 小強 | 男 | 82 |
4 | C | 小安 | 女 | 95 |
再來,如果想要多條件查詢,我們可以用 and 和 or,例如下面的語句就能查詢成績大於80的男性:
df.query('成績 > 80 and 性別 == "男"')
結果如下:
班級 | 姓名 | 性別 | 成績 | |
---|---|---|---|---|
0 | A | 小明 | 男 | 85 |
3 | B | 小強 | 男 | 82 |