Como contar a freqüência em que um valor ocorre em Pandas Dataframe

Ahmed Waheed 30 janeiro 2023
  1. df.groupby().count() Método
  2. Series.valor_contas() Método
  3. df.groupby().size() Método
Como contar a freqüência em que um valor ocorre em Pandas Dataframe

Às vezes, quando você estiver trabalhando com dados, talvez queira contar quantas vezes um valor ocorre na coluna ou, em outras palavras, para calcular a freqüência. São usados principalmente três métodos para este fim. Vamos dar uma olhada neles, um a um.

  1. df.groupby().count()
  2. Series.valor_contas()
  3. df.groupby().size()

Utilizaremos o mesmo DataFrame nas próximas seções como a seguir,

import pandas as pd

df = pd.DataFrame(
    {
        "A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
        "B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
    }
)

df.groupby().count() Método

Se você quiser calcular a freqüência em uma única coluna, então este método é o melhor.

import pandas as pd

df = pd.DataFrame(
    {
        "A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
        "B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
    }
)

freq = df.groupby(["A"]).count()
print(freq)

freq = df.groupby(["B"]).count()
print(freq)

O seguinte será emitido.

     B
A     
jim  4
sal  3
tom  2
   A
B   
a  4
b  5

Series.valor_contas() Método

Como todo objeto dataframe é uma coleção de objetos Series, este método é melhor utilizado para objetos pandas.Series.

Agora utilize a função Series.values_counts().

import pandas as pd

df = pd.DataFrame(
    {
        "A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
        "B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
    }
)

freq = df["A"].value_counts()
print(freq)

freq = df["B"].value_counts()
print(freq)

O seguinte será produzido.

jim    4
sal    3
tom    2
Name: A, dtype: int64
b    5
a    4
Name: B, dtype: int64

df.groupby().size() Método

Os dois métodos acima não podem ser utilizados para contar a freqüência de múltiplas colunas, mas podemos utilizar df.groupby().size() para múltiplas colunas ao mesmo tempo.

import pandas as pd

df = pd.DataFrame(
    {
        "A": ["jim", "jim", "jim", "jim", "sal", "tom", "tom", "sal", "sal"],
        "B": ["a", "b", "a", "b", "b", "b", "a", "a", "b"],
    }
)

freq = df.groupby(["A", "B"]).size()
print(freq)

O seguinte será emitido.

A    B
jim  a    2
     b    2
sal  a    1
     b    2
tom  a    1
     b    1
dtype: int64

Artigo relacionado - Pandas DataFrame