A Python pandas DataFrame.where() függvény célja, hogy segítsen a DataFrames feltételes adatkezelésében. Lehetővé teszi a programozók számára, hogy egy feltétel alapján kicseréljék vagy elfedjék az értékeket egy pandas DataFrame-ben.

Mi a pandas DataFrame.where() szintaxisa?

A where() függvény legfeljebb öt paramétert fogadhat el, és a következő szintaxissal rendelkezik:

DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)
python

Adatkeretre alkalmazva csak azok az értékek maradnak változatlanok, amelyek megfelelnek a megadott feltételnek (cond). Minden más érték helyébe a other paraméterben megadott érték lép.

Milyen paraméterek használhatók a pandas DataFrame.where()-vel?

A Pandas DataFrame.where() különböző paramétereket fogad el, amelyek megkönnyítik a rugalmas adatkezelést és -módosítást:

Paraméter Leírás Alapértelmezett érték
cond A DataFrame értékek változatlanságának feltétele
other Az a érték, amely helyettesíti a feltételnek nem megfelelő értékeket
inplace Ha True van állítva, a művelet közvetlenül módosítja a DataFrame-et. False
axis Meghatározza, hogy a feltétel melyik tengelyre vonatkozik (axis=0 a sorokhoz, axis=1 az oszlopokhoz) None
level Meghatározza a többindex szintjét, amelyre a feltétel vonatkozik. None

A pandák használata DataFrame.where()

A where() funkció számos olyan esetben hasznos lehet, amikor feltételes adatkezelésre van szükség. Ide tartozhat például az adatok tisztítása vagy új oszlopok létrehozása feltételek alapján.

Értékek feltételek alapján történő cseréje

Tegyük fel, hogy van egy DataFrame, amely egy vállalat értékesítési eredményeit tartalmazza, és csak a pozitív eredményeket szeretné megjeleníteni. A negatív eredményeket viszont 0 kell cserélni. Ezt a pandas DataFrame.where() segítségével teheti meg. Először hozzunk létre egy DataFrame-et:

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

A fenti kód a következő DataFrame-et eredményezi:

Region    Sales_Q1    Sales_Q2
0    North         15000         20000
1    South         -5000         25000
2     East            3000         -7000
3     West         -1000            5000

where() segítségével az összes negatív értéket 0ra cserélheti. Győződjön meg arról, hogy csak a numerikus értékeket tartalmazó oszlopok szerepelnek, ellenkező esetben nem fog működni.

# 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

Az így kapott DataFrame, df_positive, csak a pozitív értékesítési eredményeket jeleníti meg, és a negatív értékeket 0vel helyettesíti:

Region    Sales_Q1    Sales_Q2
0    North         15000         20000
1    South                 0         25000
2     East            3000                 0
3     West                 0            5000

Értékek maszkolása feltételek segítségével

A Pandas DataFrame.where() értékek maszkolására is használható. Ez azt jelenti, hogy a DataFrame csak bizonyos részei kerülnek megjelenítésre. A következő példában csak azokat az értékeket szeretnénk megjeleníteni, amelyek egy bizonyos küszöbérték (ebben az esetben 10000) felett vannak. Ne feledje, hogy csak a numerikus adatokat tartalmazó oszlopokat értékelheti:

# 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

Az így kapott DataFrame, df_masked, csak 10000 nagyobb értékeket jeleníti meg. NaN minden más érték helyett használatos:

Region    Sales_Q1    Sales_Q2
0    North     15000.0     20000.0
1    South             NaN     25000.0
2     East             NaN             NaN
3     West             NaN             NaN
Ugrás a főmenübe