Ce face DataFrame.info()
info() este de obicei a doua comandă după citirea unui fișier, după head(). Arată câte rânduri are tabelul, lista coloanelor, câte valori nenule (completate) are fiecare coloană, tipul coloanei (Dtype) și memoria folosită.
Coloana Non-Null Count îți arată imediat unde lipsesc date: dacă tabelul are 4 rânduri și o coloană are 3 non-null, într-un rând valoarea lipsește. În pandas 3, coloanele de text apar cu tipul str.
Metoda afișează rezumatul și returnează None. Cu buf îl poți scrie într-un obiect de tip fișier în loc de ecran.
Parametri
| Parametru | Descriere |
|---|---|
verbose |
Dacă afișează rezumatul complet, pe coloane. Implicit depinde de numărul de coloane. |
buf |
Unde se scrie rezumatul. Implicit ecranul (sys.stdout). |
max_cols |
Peste câte coloane trece la un rezumat scurt. |
memory_usage |
Dacă afișează memoria. "deep" calculează exact și memoria textelor. |
show_counts |
Dacă afișează coloana Non-Null Count. |
Ce returnează
None. Rezumatul se afișează (sau se scrie în buf).
Exemple
Exemplul 1: Rezumatul unui tabel cu valori lipsă
Coloana medie are 3 valori completate din 4 (lui Radu îi lipsește media), deci tipul ei este float64.
import pandas as pd
df = pd.DataFrame({
"nume": ["Ana", "Mihai", "Ioana", "Radu"],
"oraș": ["Iași", "Cluj", "Brașov", "Iași"],
"vârstă": [17, 16, 17, 18],
"medie": [9.45, 8.70, 9.90, None],
})
df.info()
Rezultat
<class 'pandas.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 nume 4 non-null str
1 oraș 4 non-null str
2 vârstă 4 non-null int64
3 medie 3 non-null float64
dtypes: float64(1), int64(1), str(2)
memory usage: 260.0 bytes
Exemplul 2: Memoria exactă și rezumat fără numărători
memory_usage="deep" include și memoria textelor; show_counts=False scoate coloana Non-Null Count.
import pandas as pd
df = pd.DataFrame({
"produs": ["pâine", "lapte", "cafea"],
"preț": [4.5, 7.0, 32.0],
"stoc": [120, 80, 15],
})
df.info(memory_usage="deep", show_counts=False)
Rezultat
<class 'pandas.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Dtype
--- ------ -----
0 produs str
1 preț float64
2 stoc int64
dtypes: float64(1), int64(1), str(1)
memory usage: 358.0 bytes
Exemplul 3: Rezumatul într-un text
Cu buf=io.StringIO(), rezumatul nu apare pe ecran, ci ajunge într-un text pe care îl poți prelucra.
import io
import pandas as pd
df = pd.DataFrame({"nume": ["Ana", "Mihai"], "nota": [9.5, None]})
buffer = io.StringIO()
df.info(buf=buffer)
text = buffer.getvalue()
print(text.splitlines()[1])
print("non-null" in text)
Rezultat
RangeIndex: 2 entries, 0 to 1
True
Greșeli frecvente
- Scrii
print(df.info()): rezumatul apare, urmat deNone, pentru că metoda nu returnează nimic. Apelează doardf.info(). - Confunzi
info()cudescribe().info()arată structura (tipuri, valori lipsă); statisticile (medie, minim, maxim) le dădescribe(). - Vezi tipul
strpe o coloană care ar trebui să fie numerică: în fișier există cel puțin o valoare care nu e număr. Verifică valorile și transformă coloana cuastypesaupd.to_numeric.
Comenzi înrudite
head() / tail(): Afișează primele (head) sau ultimele (tail) n rânduri dintr-un DataFrame sau Series. Implicit 5.describe(): Calculează statistici rapide pe coloane: număr, medie, abatere standard, minim, cuartile, maxim; pentru text, valori unice și cea mai frecventă.dtypes / select_dtypes(): dtypes arată tipul fiecărei coloane; select_dtypes păstrează doar coloanele de anumite tipuri (numere, text, date).isna() / notna(): Arată care valori lipsesc (NaN, None, NaT) dintr-un tabel; cu isna().sum() afli câte lipsesc în fiecare coloană.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.