Funzione Pandas Series.value_counts()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.Series.value_counts():
  2. Codici di esempio: conteggio delle occorrenze di elementi univoci nella serie Pandas utilizzando il metodo Series.value_counts()
  3. Codici di esempio: imposta normalize=True nel metodo Series.value_counts() per ottenere le frequenze relative degli elementi
  4. Codici di esempio: imposta ascending=True nel metodo Series.value_counts() per ordinare gli elementi in base al valore della frequenza in ordine crescente
  5. Codici di esempio: imposta il parametro bins nel metodo Series.value_counts() per ottenere il conteggio dei valori che si trovano in contenitori semiaperti
  6. Codici di esempio: imposta dropna=False nel metodo Series.value_counts() per contare NaN
Funzione Pandas Series.value_counts()

Il metodo pandas.Series.value_counts() conta il numero di occorrenze di ogni elemento univoco nella Series.

Sintassi di pandas.Series.value_counts():

Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

Parametri

normalize Booleano. Frequenze relative dei valori univoci (normalize=True) o frequenze assolute dei valori univoci (normalize=False).
sort Booleano. Ordina gli elementi in base alle frequenze (sort=True) o lascia l’oggetto Series non ordinato (sort=False)
ascending Booleano. Ordina i valori in ordine crescente (ascending=True) o decrescente (ascending=False)
bins Numero intero. Numero di partizioni in cui è suddiviso l’intervallo di valori dell’oggetto Series
dropna Booleano. Includi conteggi di NaN (dropna=False) o escludi conteggi di NaN (dropna=True)

Ritorno

Restituisce un oggetto Series composto dal conteggio di valori univoci.

Codici di esempio: conteggio delle occorrenze di elementi univoci nella serie Pandas utilizzando il metodo Series.value_counts()

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

absolute_counts=df["X"].value_counts()

print("Frequencies of elements of X column:")
print(absolute_counts)

Produzione:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
3.0    2
2.0    1
1.0    1
Name: X, dtype: int64 

Il absolute_counts fornisce il conteggio di ogni elemento univoco della colonna X utilizzando il metodo Series.value_counts().

Series.value_counts() non conta NaN per impostazione predefinita. Presenteremo come contarlo nelle sezioni seguenti.

Codici di esempio: imposta normalize=True nel metodo Series.value_counts() per ottenere le frequenze relative degli elementi

Se impostiamo normalize=True nel metodo Series.value_counts(), otteniamo le frequenze relative di tutti gli elementi univoci nell’oggetto Series.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

relative_counts=df["X"].value_counts(normalize=True)

print("Relative Frequencies of elements of X column:")
print(relative_counts)

Produzione:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
3.0    0.50
2.0    0.25
1.0    0.25
Name: X, dtype: float64

L’oggetto Serie relative_counts fornisce le frequenze relative di ogni elemento univoco della colonna X.

Le frequenze relative si ottengono dividendo tutte le frequenze assolute per la somma delle frequenze assolute.

Codici di esempio: imposta ascending=True nel metodo Series.value_counts() per ordinare gli elementi in base al valore della frequenza in ordine crescente

Se impostiamo ascending=True nel metodo Series.value_counts(), otteniamo l’oggetto Series con i suoi elementi ordinati in base ai valori di frequenza in ordine crescente.

Per impostazione predefinita, i valori nell’oggetto Series restituiti dal metodo Series.value_counts() sono ordinati in ordine decrescente in base ai valori di frequenza.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

sorted_counts=df["X"].value_counts(ascending=True)
print("Frequencies of elements of X column:")
print(sorted_counts)

Produzione:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies of elements of X column:
1.0    1
2.0    1
3.0    2
Name: X, dtype: int64

Fornisce il conteggio di ogni oggetto univoco nella colonna X con valori di frequenza ordinati in ordine crescente.

Codici di esempio: imposta il parametro bins nel metodo Series.value_counts() per ottenere il conteggio dei valori che si trovano in contenitori semiaperti

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3, 4, 5],
                   'Y': [4, np.nan, 8, np.nan, 3, 2, 1]})
print("DataFrame:")
print(df)

counts=df["X"].value_counts(bins=3)
print("Frequencies:")
print(counts)

Produzione:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
5  4.0  2.0
6  5.0  1.0
Frequencies:
(3.667, 5.0]      2
(2.333, 3.667]    2
(0.995, 2.333]    2
Name: X, dtype: int64

Divide l’intervallo di valori nella Series, cioè la colonna X in tre parti e restituisce i conteggi dei valori che si trovano in ciascun contenitore semiaperto.

Codici di esempio: imposta dropna=False nel metodo Series.value_counts() per contare NaN

Se impostiamo dropna=False nel metodo Series.value_counts(), otteniamo anche il conteggio dei valori NaN.

import pandas as pd
import numpy as np

df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
                   'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)

counts=df["Y"].value_counts(dropna=False)

print("Frequencies:")
print(counts)

Produzione:

DataFrame:
     X    Y
0  1.0  4.0
1  2.0  NaN
2  3.0  8.0
3  NaN  NaN
4  3.0  3.0
Frequencies:
NaN    2
3.0    1
8.0    1
4.0    1
Name: Y, dtype: int64

Fornisce il conteggio di ogni elemento nella colonna Y di DataFrame con il conteggio dei valori NaN.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Pandas Series