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)
python

Câ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)
python

Codul 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            5000

Folosind 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)
python

DataFrame-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            5000

Mascarea 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)
python

DataFrame-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
Mergi la meniul principal