Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

DataFrame.replace() în pandas

Î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ă.

Sintaxă
df.replace(to_replace=None, value=..., *, regex=False)

Ce face DataFrame.replace()

replace("Bucuresti", "București") înlocuiește peste tot în tabel valoarea întreagă „Bucuresti”. Poți da o listă de valori care primesc aceeași valoare nouă (replace(["-", "n/a"], pd.NA)) sau un dicționar {vechi: nou}. Un dicționar de dicționare, {"coloana": {vechi: nou}}, limitează înlocuirea la o coloană.

Implicit se compară valoarea întreagă din celulă: „Iasi” nu se schimbă în „Iasi, România”. Cu regex=True, to_replace este tratat ca expresie regulată și se înlocuiesc doar părțile potrivite din text, de exemplu toate spațiile dintr-un număr de telefon.

Spre deosebire de map(dict), valorile care nu sunt în dicționar rămân neschimbate.

Parametri

Parametru Descriere
to_replace Ce se caută: o valoare, o listă, un dicționar {vechi: nou}, un dicționar pe coloane sau, cu regex=True, o expresie regulată.
value Valoarea nouă (când to_replace nu este dicționar).
regex Dacă este True, to_replace este o expresie regulată aplicată pe text.

Ce returnează

Un obiect nou, cu valorile înlocuite.

Exemple

Exemplul 1: Valori, liste și dicționare

import pandas as pd

df = pd.DataFrame({
    "oras": ["Iasi", "Cluj", "Bucuresti", "Iasi"],
    "nota": [9, -1, 8, 0],
})

print(df.replace({"Iasi": "Iași", "Bucuresti": "București"}))
print()
print(df.replace({"nota": {-1: 5, 0: 5}}))

Rezultat

        oras  nota
0       Iași     9
1       Cluj    -1
2  București     8
3       Iași     0

        oras  nota
0       Iasi     9
1       Cluj     5
2  Bucuresti     8
3       Iasi     5

Exemplul 2: Valori care înseamnă „lipsă”

„-” și „n/a” devin valori lipsă, apoi coloana se poate converti în numere.

import pandas as pd

lei = pd.Series(["120", "-", "85", "n/a"])
curat = lei.replace(["-", "n/a"], pd.NA)
print(curat)
print(pd.to_numeric(curat).sum())

Rezultat

0    120
1    NaN
2     85
3    NaN
dtype: str
205.0

Exemplul 3: Înlocuire cu expresii regulate

Se scot spațiile și punctele din numerele de telefon, apoi prefixul +40 devine 0.

import pandas as pd

telefon = pd.Series(["0740 123 456", "+40 721.555.010", "0232 21 00 11"])
curat = telefon.replace(r"[\s.]", "", regex=True).replace(r"^\+40", "0", regex=True)
print(curat)

Rezultat

0    0740123456
1    0721555010
2    0232210011
dtype: str

Greșeli frecvente

  • Aștepți să schimbe o bucată de text fără regex=True: s.replace("a", "ă") schimbă doar celulele care sunt exact „a”. Pentru subșiruri folosește regex=True sau s.str.replace("a", "ă").
  • Uiți să păstrezi rezultatul: df.replace(...) returnează un tabel nou. Scrie df = df.replace(...).
  • Într-o expresie regulată uiți că ., +, ( au sens special. Pune \ în față (r"\+40") sau folosește regex=False.

Comenzi înrudite

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: DataFrame.replace()

Ai o nelămurire despre utilizarea comenzii DataFrame.replace() 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.