Cum se aplică condiții în pandas DataFrames cu where()
Funcția Python pandas DataFrame.where() este concepută pentru a ajuta la manipularea condiționată a datelor în DataFrames. Aceasta permite programatorilor să înlocuiască sau să mascheze valori într-un DataFrame pandas pe baza unei condiții.
Care este sintaxa pentru pandas DataFrame.where()?
Funcția where() poate accepta până la cinci parametri și are următoarea sintaxă:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)pythonCând se aplică unui DataFrame, numai valorile care îndeplinesc condiția specificată (cond) vor rămâne neschimbate. Orice alte valori vor fi înlocuite cu ceea ce specificați în parametrul other.
Ce parametri pot fi utilizați cu pandas DataFrame.where()?
Pandas DataFrame.where() acceptă diferiți parametri care facilitează gestionarea și modificarea flexibilă a datelor:
| Parametru | Descriere | Valoare implicită |
|---|---|---|
cond
|
Condiție care trebuie îndeplinită pentru ca valorile DataFrame să rămână neschimbate | |
other
|
Valoarea care înlocuiește valorile care nu îndeplinesc condiția | |
inplace
|
Când este setată la True, operațiunea va modifica direct DataFrame.
|
False
|
axis
|
Specifică axa la care se aplică condiția (axis=0 pentru rânduri, axis=1 pentru coloane)
|
None
|
level
|
Definește nivelul unui indice multiplu la care trebuie aplicată condiția. | None
|
Cum se utilizează pandas DataFrame.where()
Funcția where() poate fi utilă în diverse scenarii care necesită manipularea condiționată a datelor. Aceasta poate include curățarea datelor sau crearea de coloane noi pe baza unor condiții.
Înlocuirea valorilor pe baza condițiilor
Să presupunem că aveți un DataFrame cu rezultatele vânzărilor unei companii și doriți să afișați doar rezultatele pozitive. Rezultatele negative, pe de altă parte, ar trebui înlocuite cu 0. Puteți face acest lucru cu pandas DataFrame.where(). Mai întâi, să creăm un 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)pythonCodul de mai sus generează următorul DataFrame:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South -5000 25000
2 East 3000 -7000
3 West -1000 5000Folosind where(), puteți înlocui toate valorile negative cu 0. Asigurați-vă că sunt incluse numai coloanele cu valori numerice, altfel nu va funcționa.
# 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)pythonDataFrame-ul rezultat, df_positive, afișează numai rezultatele pozitive ale vânzărilor și înlocuiește valorile negative cu 0:
Region Sales_Q1 Sales_Q2
0 North 15000 20000
1 South 0 25000
2 East 3000 0
3 West 0 5000Mascarea valorilor folosind condiții
Pandas DataFrame.where() poate fi utilizat și pentru mascarea valorilor. Aceasta înseamnă că vor fi afișate numai anumite părți dintr-un DataFrame. În exemplul următor, dorim să afișăm numai valorile care depășesc un anumit prag (în acest caz, 10000). Rețineți că trebuie să vă asigurați că evaluați numai coloanele cu date numerice:
# 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)pythonDataFrame-ul rezultat, df_masked, afișează numai valorile mai mari decât 10000. NaN este utilizat în locul tuturor celorlalte valori:
Region Sales_Q1 Sales_Q2
0 North 15000.0 20000.0
1 South NaN 25000.0
2 East NaN NaN
3 West NaN NaN