DataFrame.info() în pandas

Explorarea datelor pandas 1.0+

Afișează un rezumat al tabelului: numărul de rânduri, coloanele, câte valori completate are fiecare, tipurile și memoria.

Sintaxă
df.info(verbose=None, buf=None, max_cols=None, memory_usage=None, show_counts=None)

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 de None, pentru că metoda nu returnează nimic. Apelează doar df.info().
  • Confunzi info() cu describe(). info() arată structura (tipuri, valori lipsă); statisticile (medie, minim, maxim) le dă describe().
  • Vezi tipul str pe 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 cu astype sau pd.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.