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

Series.str (lower, upper, strip, len, replace, slice) în pandas

Accesorul .str aplică metode de text pe fiecare valoare dintr-o coloană: litere mici, spații, lungime, înlocuire, tăiere.

Sintaxă
serie.str.lower()  serie.str.strip()  serie.str.len()  serie.str.replace(pat, repl, regex=False)  serie.str.slice(start, stop)

Ce face Series.str (lower, upper, strip, len, replace, slice)

O coloană de text nu are direct metodele unui șir Python: df["nume"].lower() dă eroare. Metodele de text stau în accesorul .str: df["nume"].str.lower() aplică lower() pe fiecare valoare și returnează o coloană nouă, de aceeași lungime.

Cele mai folosite metode sunt str.lower(), str.upper(), str.title() (prima literă mare la fiecare cuvânt), str.strip() (scoate spațiile de la capete), str.len() (numărul de caractere), str.replace() (înlocuiește un text cu altul) și str.slice(start, stop) (o bucată din text, ca s[start:stop]). Le poți înlănțui: serie.str.strip().str.title().

Valorile lipsă rămân lipsă: metodele .str le sar, fără eroare. În pandas 3, coloanele de text au implicit tipul str. La str.replace(), parametrul regex este implicit False (din pandas 2.0), deci textul căutat este luat literal.

Parametri

Parametru Descriere
pat, repl La str.replace(): textul căutat și textul cu care îl înlocuiești.
regex La str.replace(): True dacă pat este o expresie regulată. Implicit False.
n La str.replace(): câte înlocuiri pe valoare. Implicit -1 (toate).
to_strip La str.strip(): caracterele scoase de la capete. Implicit spațiile albe.
start, stop, step La str.slice(): pozițiile de început și de sfârșit (sfârșitul nu este inclus) și pasul.

Ce returnează

O Series nouă, cu același index. str.len() returnează numere; celelalte returnează text.

Exemple

Exemplul 1: Curățarea unor nume scrise neuniform

str.strip() scoate spațiile de la capete, iar str.title() pune prima literă mare la fiecare cuvânt.

import pandas as pd

nume = pd.Series(["  ana POPESCU ", "Mihai ionescu", " ELENA  "])
curat = nume.str.strip().str.title()
print(curat)
print(curat.str.upper().tolist())
print(curat.str.lower().tolist())
print(curat.str.len().tolist())

Rezultat

0      Ana Popescu
1    Mihai Ionescu
2            Elena
dtype: str
['ANA POPESCU', 'MIHAI IONESCU', 'ELENA']
['ana popescu', 'mihai ionescu', 'elena']
[11, 13, 5]

Exemplul 2: Înlocuire și tăiere

Scoatem cratimele din numerele de telefon, apoi păstrăm primele 4 cifre (prefixul).

import pandas as pd

telefoane = pd.Series(["0722-123-456", "0744-987-654", "0232-111-222"])
fara_cratime = telefoane.str.replace("-", "")
print(fara_cratime.tolist())
print(fara_cratime.str.slice(0, 4).tolist())
print(fara_cratime.str.slice(-3).tolist())

Rezultat

['0722123456', '0744987654', '0232111222']
['0722', '0744', '0232']
['456', '654', '222']

Exemplul 3: Pe o coloană dintr-un tabel, cu o valoare lipsă

Valoarea lipsă rămâne lipsă (NaN) și nu oprește calculul.

import pandas as pd

df = pd.DataFrame({"client": ["Ana", "Mihai", "Elena"],
                   "oras": [" iași", "CLUJ ", None]})
df["oras"] = df["oras"].str.strip().str.capitalize()
df["litere"] = df["oras"].str.len()
print(df)

Rezultat

  client  oras  litere
0    Ana  Iași     4.0
1  Mihai  Cluj     4.0
2  Elena   NaN     NaN

Greșeli frecvente

  • Scrii df["nume"].lower() fără .str. Primești AttributeError, pentru că Series nu are metoda lower.
  • Folosești .str pe o coloană de numere. Apare AttributeError: Can only use .str accessor with string values; transformă întâi cu astype(str).
  • Crezi că str.strip() scoate și spațiile din mijloc. Le scoate doar pe cele de la capete; pentru restul folosește str.replace(" ", "").
  • Uiți că rezultatul este o coloană nouă: df["oras"].str.upper() singur nu schimbă tabelul. Atribuie rezultatul înapoi: df["oras"] = df["oras"].str.upper().

Comenzi înrudite

  • str.contains(), str.startswith(), str.endswith(): Verifică dacă fiecare text conține, începe sau se termină cu un anumit șir; rezultatul True/False se folosește la filtrare.
  • str.split() și str.extract(): Împarte textul din fiecare valoare în bucăți (str.split) sau scoate părți cu o expresie regulată (str.extract), în coloane noi.
  • 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ă.
  • DataFrame.astype() și pd.to_numeric(): Schimbă tipul unei coloane (int, float, category, str); pd.to_numeric transformă textul în numere și poate pune NaN la valorile greșite.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Series.str (lower, upper, strip, len, replace, slice)

Ai o nelămurire despre utilizarea comenzii Series.str (lower, upper, strip, len, replace, slice) 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.