Kuinka soveltaa ehtoja pandas DataFrames -kehyksissä where()-funktiolla
Python pandas DataFrame.where() -funktio on suunniteltu auttamaan ehdollisessa tietojen käsittelyssä DataFrames-kehyksissä. Sen avulla ohjelmoijat voivat korvata tai peittää pandas DataFrame -kehyksen arvoja ehdon perusteella.
Mikä on pandas DataFrame.where():n syntaksi?
where() funktio voi hyväksyä enintään viisi parametria, ja sen syntaksi on seuraava:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)pythonKun tätä sovelletaan DataFrame-kehykseen, vain määritetyn ehdon (cond) täyttävät arvot säilyvät ennallaan. Kaikki muut arvot korvataan other määrittämilläsi arvoilla.
Mitä parametreja voidaan käyttää pandas DataFrame.where() kanssa?
Pandas DataFrame.where() hyväksyy erilaisia parametreja, jotka helpottavat joustavaa tietojen hallintaa ja muokkausta:
| Parametri | Kuvaus | Oletusarvo |
|---|---|---|
cond
|
Ehto, jonka on täytyttävä, jotta DataFrame-arvot pysyvät muuttumattomina | |
other
|
Arvo, joka korvaa ehdot täyttämättömät arvot | |
inplace
|
Kun asetetaan arvoon True, operaatio muokkaa DataFrame-taulukkoa suoraan.
|
False
|
axis
|
Määrittää, mihin akseliin ehto sovelletaan (axis=0 riveille, axis=1 sarakkeille)
|
None
|
level
|
Määrittää monihakemiston tason, johon ehto tulisi soveltaa. | None
|
Kuinka käyttää pandas DataFrame.where()
where() voi olla hyödyllinen erilaisissa tilanteissa, joissa tarvitaan ehdollista tietojen käsittelyä. Tähän voi kuulua tietojen puhdistaminen tai uusien sarakkeiden luominen ehtojen perusteella.
Arvojen korvaaminen ehtojen perusteella
Oletetaan, että sinulla on DataFrame, joka sisältää yrityksen myyntitulokset, ja haluat näyttää vain positiiviset tulokset. Negatiiviset tulokset puolestaan tulisi korvata luvulla 0. Voit tehdä tämän pandas-kirjaston avulla DataFrame.where(). Luodaan ensin DataFrame:
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)pythonYllä oleva koodi tuottaa seuraavan DataFrame-kehyksen:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South -5000 25000
2 East 3000 -7000
3 West -1000 5000Käyttämällä where() voit korvata kaikki negatiiviset arvot 0llä. Varmista, että vain numeerisia arvoja sisältävät sarakkeet ovat mukana, muuten se ei toimi.
# 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)pythonTuloksena oleva DataFrame, df_positive, näyttää vain positiiviset myyntitulokset ja korvaa negatiiviset arvot luvulla 0:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South 0 25000
2 East 3000 0
3 West 0 5000Arvojen peittäminen ehtojen avulla
Pandas DataFrame.where() voidaan käyttää myös arvojen peittämiseen. Tämä tarkoittaa, että vain tietyt osat DataFrame-taulukosta näytetään. Seuraavassa esimerkissä haluamme näyttää vain arvot, jotka ovat tietyn kynnysarvon (tässä tapauksessa 10000) yläpuolella. Muista, että sinun on varmistettava, että arvioit vain sarakkeita, joissa on numeerista dataa:
# 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)pythonTuloksena oleva DataFrame, df_masked, näyttää vain arvot, jotka ovat suurempia kuin 10000. NaN käytetään kaikkien muiden arvojen sijasta:
Region Sales_Q1 Sales_Q2
0 North 15000.0 20000.0
1 South NaN 25000.0
2 East NaN NaN
3 West NaN NaN