Załóżmy prosty DataFrame:
import pandas as pd
df = pd.DataFrame({
"city": ["WAW","WRO","KRK","GDA","POZ"],
"temp": [23, 25, 21, 19, 24],
"rain": [False, True, False, True, False]
})
df
| 0 |
WAW |
23 |
False |
| 1 |
WRO |
25 |
True |
| 2 |
KRK |
21 |
False |
| 3 |
GDA |
19 |
True |
| 4 |
POZ |
24 |
False |
1) Filtrowanie maską bool (najczęstsze)
hot = df["temp"] >= 23
df[hot]
| 0 |
WAW |
23 |
False |
| 1 |
WRO |
25 |
True |
| 4 |
POZ |
24 |
False |
2) .query() — czytelne warunki jako string
df.query("temp >= 23 and rain == False")
| 0 |
WAW |
23 |
False |
| 4 |
POZ |
24 |
False |
3) .loc — jawnie po wierszach/kolumnach
df.loc[df["temp"].ge(23) & ~df["rain"], ["city", "temp"]]
Mini-zadanie ✅
Wyfiltruj miasta, w których nie pada i temperatura jest poniżej 24, zwracając tylko kolumny city i temp.
# TODO: napisz filtr na 2 różne sposoby (maską i .query())
# 1) maska bool:
# ...
# 2) query():
# ...