Kuidas rakendada tingimusi pandas DataFrames'is funktsiooni where() abil
Python pandas DataFrame.where() funktsioon on loodud, et aidata tingimusliku andmete töötlemisega DataFrames. See võimaldab programmeerijatel asendada või maskeerida väärtusi pandas DataFrame’is tingimuse alusel.
Mis on pandas DataFrame.where() süntaks?
Funktsioon where() võib vastu võtta kuni viis parameetrit ja selle süntaks on järgmine:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)pythonKui seda rakendatakse DataFrame’ile, jäävad alles ainult need väärtused, mis vastavad määratud tingimusele (cond). Kõik muud väärtused asendatakse sellega, mida määratlete parameetris other.
Milliseid parameetreid saab kasutada pandas DataFrame.where()-ga?
Pandas DataFrame.where() aktsepteerib erinevaid parameetreid, mis hõlbustavad paindlikku andmete haldamist ja muutmist:
| Parameeter | Kirjeldus | Vaikimisi väärtus |
|---|---|---|
cond
|
Tingimus, mis peab olema täidetud, et DataFrame väärtused jääksid muutumatuks | |
other
|
Väärtus, mis asendab tingimustele mittevastavad väärtused | |
inplace
|
Kui väärtuseks on seatud True, muudab operatsioon otse DataFrame’i.
|
False
|
axis
|
Määrab, millisele teljele tingimus kehtib (axis=0 ridadele, axis=1 veergudele)
|
None
|
level
|
Määrab mitme indeksiga taseme, millele tingimus peaks kehtima. | None
|
Kuidas kasutada pandas DataFrame.where()
Funktsioon where() võib olla kasulik mitmesugustes olukordades, kus on vaja tingimuslikku andmete töötlemist. See võib hõlmata andmete puhastamist või uute veergude loomist tingimuste alusel.
Väärtuste asendamine tingimuste alusel
Oletame, et teil on DataFrame, mis sisaldab ettevõtte müügitulemusi, ja soovite kuvada ainult positiivseid tulemusi. Negatiivsed tulemused tuleks aga asendada numbriga 0. Seda saab teha pandas DataFrame.where() abil. Esmalt loome DataFrame’i:
import pandas as pd
# Create a sample DataFrame
data = {
'Region': ['North', 'South', 'East', 'West'],
'Sales_Q1': [15000, -5000, 3000, -1000],
'Sales_Q2': [20000, 25000, -7000, 5000]
}
df = pd.DataFrame(data)
print(df)pythonEespool olev kood loob järgmise andmestiku:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South -5000 25000
2 East 3000 -7000
3 West -1000 5000Kasutades where(), saate asendada kõik negatiivsed väärtused numbriga 0. Veenduge, et kaasatud on ainult numbriliste väärtustega veerud, vastasel juhul see ei tööta.
# Replacing values using conditions
df_positive = df.copy()
df_positive[['Sales_Q1', 'Sales_Q2']] = df[['Sales_Q1', 'Sales_Q2']].where(df[['Sales_Q1', 'Sales_Q2']] > 0, 0)
print(df_positive)pythonSaadud andmestik df_positive kuvab ainult positiivseid müügitulemusi ja asendab negatiivsed väärtused numbriga 0:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South 0 25000
2 East 3000 0
3 West 0 5000Väärtuste maskeerimine tingimuste abil
Pandas DataFrame.where() saab kasutada ka väärtuste maskeerimiseks. See tähendab, et kuvatakse ainult DataFrame’i teatud osad. Järgmises näites tahame näidata ainult väärtusi, mis ületavad teatud künnise (antud juhul 10000). Pange tähele, et peate veenduma, et hindate ainult numbriliste andmetega veerge:
# Only display values over 10000
df_masked = df.copy()
df_masked[['Sales_Q1', 'Sales_Q2']] = df[['Sales_Q1', 'Sales_Q2']].where(df[['Sales_Q1', 'Sales_Q2']] > 10000)
print(df_masked)pythonSaadud andmestik df_masked kuvab ainult väärtusi, mis on suuremad kui 10000. Kõigi teiste väärtuste asemel kasutatakse NaN:
Region Sales_Q1 Sales_Q2
0 North 15000.0 20000.0
1 South NaN 25000.0
2 East NaN NaN
3 West NaN NaN