Ce face dtypes / select_dtypes()
Fiecare coloană are un tip: int64 (numere întregi), float64 (numere cu zecimale, inclusiv coloanele numerice cu valori lipsă), bool, datetime64 (date calendaristice) sau str (text, tipul implicit pentru text în pandas 3). df.dtypes returnează un Series cu tipul fiecărei coloane.
select_dtypes returnează doar coloanele de tipurile cerute. include="number" păstrează toate coloanele numerice (întregi și zecimale), iar exclude="number" pe toate celelalte. E util când vrei să calculezi ceva doar pe coloanele numerice.
Parametri
| Parametru | Descriere |
|---|---|
include |
Tipurile păstrate: "number", "int64", "float64", "str", "bool", "datetime" sau o listă. |
exclude |
Tipurile lăsate deoparte. Cel puțin unul dintre include și exclude trebuie dat. |
Ce returnează
dtypes: un Series cu tipurile. select_dtypes: un DataFrame cu coloanele alese.
Exemple
Exemplul 1: Tipul fiecărei coloane
import pandas as pd
df = pd.DataFrame({
"nume": ["Ana", "Mihai", "Ioana"],
"vârstă": [17, 16, 17],
"medie": [9.45, 8.70, 9.90],
"bursier": [True, False, True],
"înscris": pd.to_datetime(["2024-09-15", "2025-09-15", "2024-09-15"]),
})
print(df.dtypes)
Rezultat
nume str
vârstă int64
medie float64
bursier bool
înscris datetime64[us]
dtype: object
Exemplul 2: Doar coloanele numerice sau doar celelalte
include="number" ia coloanele întregi și cu zecimale. Media pe coloane se calculează apoi fără erori de tip.
import pandas as pd
df = pd.DataFrame({
"lună": ["ian", "feb", "mar"],
"Iași": [1200, 1350, 1410],
"Cluj": [1500.5, 1420.0, 1610.5],
})
numerice = df.select_dtypes(include="number")
print(numerice)
print(numerice.mean())
print(df.select_dtypes(exclude="number"))
Rezultat
Iași Cluj
0 1200 1500.5
1 1350 1420.0
2 1410 1610.5
Iași 1320.000000
Cluj 1510.333333
dtype: float64
lună
0 ian
1 feb
2 mar
Exemplul 3: O coloană citită greșit ca text
O valoare lipsă scrisă în fișier face coloana preț de tip str. select_dtypes(include="str") o găsește, iar pd.to_numeric(..., errors="coerce") o transformă în numere.
import io
import pandas as pd
text = "produs,preț\npâine,4.5\nlapte,lipsă\ncafea,32\n"
df = pd.read_csv(io.StringIO(text))
print(list(df.select_dtypes(include="str").columns))
df["preț"] = pd.to_numeric(df["preț"], errors="coerce")
print(df.dtypes)
Rezultat
['produs', 'preț']
produs str
preț float64
dtype: object
Greșeli frecvente
- Scrii
df.dtypes()cu paranteze:dtypeseste atribut. (df.dtypese diferit dedf["col"].dtype, la singular, pentru o singură coloană.) - Cauți coloanele de text cu
include="object"din codul vechi. În pandas 3 textul are tipulstr; foloseșteinclude="str". - Apelezi
select_dtypes()fărăincludeși fărăexclude: primeștiValueError.
Comenzi înrudite
DataFrame.info(): Afișează un rezumat al tabelului: numărul de rânduri, coloanele, câte valori completate are fiecare, tipurile și memoria.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.describe(): Calculează statistici rapide pe coloane: număr, medie, abatere standard, minim, cuartile, maxim; pentru text, valori unice și cea mai frecventă.pd.to_datetime(): Transformă text sau numere în date calendaristice (datetime64), ca să poți calcula cu ele și să folosești accesorul .dt.
Întrebări & Exemple de Cod:
dtypes / select_dtypes()Ai o nelămurire despre utilizarea comenzii
dtypes / select_dtypes()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.