Ce face Series.map() și DataFrame.map()
Series.map() transformă fiecare valoare a unei coloane. Cu un dicționar, fiecare valoare este înlocuită cu valoarea de la cheia ei; valorile care nu sunt chei devin NaN. Cu o funcție, aceasta este apelată pentru fiecare valoare.
DataFrame.map() aplică o funcție pe fiecare celulă a tabelului, de exemplu pentru a formata numerele ca text. Ea a apărut în pandas 2.1 și înlocuiește vechea DataFrame.applymap(), care a fost eliminată în pandas 3. Series.map există de la primele versiuni.
Cu na_action="ignore", valorile lipsă sunt lăsate așa cum sunt, fără să fie trimise funcției.
Parametri
| Parametru | Descriere |
|---|---|
func |
La Series.map: un dicționar, un Series sau o funcție. La DataFrame.map: o funcție care primește o valoare și returnează una. |
na_action |
None (implicit) sau "ignore": valorile lipsă nu ajung la funcție. |
**kwargs |
La DataFrame.map: argumente în plus pentru funcție. |
Ce returnează
Un Series nou (Series.map) sau un DataFrame nou de aceeași formă (DataFrame.map).
Exemple
Exemplul 1: Înlocuire după dicționar
Codurile de județ devin nume de orașe. „TM” nu este în dicționar și devine NaN.
import pandas as pd
df = pd.DataFrame({"nume": ["Ana", "Mihai", "Ioana", "Elena"], "judet": ["IS", "CJ", "IS", "TM"]})
orase = {"IS": "Iași", "CJ": "Cluj-Napoca", "BV": "Brașov"}
df["oras"] = df["judet"].map(orase)
print(df)
Rezultat
nume judet oras
0 Ana IS Iași
1 Mihai CJ Cluj-Napoca
2 Ioana IS Iași
3 Elena TM NaN
Exemplul 2: Series.map cu o funcție și na_action
import pandas as pd
preturi = pd.Series([12.5, None, 7.0])
print(preturi.map(lambda x: f"{x:.2f} lei", na_action="ignore"))
Rezultat
0 12.50 lei
1 NaN
2 7.00 lei
dtype: str
Exemplul 3: DataFrame.map pe fiecare celulă
Toate valorile din tabel sunt formatate ca text cu două zecimale.
import pandas as pd
vanzari = pd.DataFrame(
{"Iași": [1200.5, 980.0], "Cluj": [1430.25, 1105.75]},
index=["ian", "feb"],
)
print(vanzari.map(lambda x: f"{x:.2f} lei"))
Rezultat
Iași Cluj
ian 1200.50 lei 1430.25 lei
feb 980.00 lei 1105.75 lei
Greșeli frecvente
- Folosești
df.applymap(...)din tutoriale vechi: metoda a fost eliminată în pandas 3. Scriedf.map(...). - Te miră
NaN-urile dupămap(dict): orice valoare care lipsește din dicționar devine lipsă. Dacă vrei să păstrezi valorile necunoscute, foloseștereplace(dict)saus.map(d).fillna(s). - Aștepți ca
DataFrame.mapsă primească rânduri sau coloane: primește câte o singură valoare. Pentru rânduri și coloane foloseșteapply.
Comenzi înrudite
DataFrame.apply() și Series.apply(): Aplică o funcție pe fiecare valoare a unei coloane sau pe fiecare coloană / rând al unui tabel (axis=1 pentru rânduri).DataFrame.replace(): Înlocuiește valori anume (o valoare, o listă, un dicționar) sau, cu regex=True, părți de text potrivite de o expresie regulată.fillna() / ffill() / bfill(): Completează valorile lipsă cu o valoare fixă, cu valori diferite pe coloane, cu media sau cu valoarea anterioară ori următoare.Series.str (lower, upper, strip, len, replace, slice): Accesorul .str aplică metode de text pe fiecare valoare dintr-o coloană: litere mici, spații, lungime, înlocuire, tăiere.
Întrebări & Exemple de Cod:
Series.map() și DataFrame.map()Ai o nelămurire despre utilizarea comenzii
Series.map() și DataFrame.map()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.