Wie man die Häufigkeit zählt, mit der ein Wert im Pandas-DataFrame auftritt

  1. Methode df.groupby().count()
  2. Methode Series.value_counts()
  3. Methode df.groupby().size()

Manchmal, wenn Sie mit DataFrame arbeiten, möchten Sie vielleicht zählen, wie oft ein Wert in der Spalte vorkommt, oder mit anderen Worten, um die Häufigkeit zu berechnen. Zu diesem Zweck werden im Wesentlichen drei Methoden verwendet. Schauen wir sie uns nacheinander an.

  1. df.groupby().count()
  2. Serien.werte_zählungen()
  3. df.groupby().size()

In den nächsten Abschnitten werden wir denselben DataFrame wie folgt verwenden,

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']
                    })  

Methode df.groupby().count()

Wenn Sie die Häufigkeit über eine einzelne Spalte berechnen möchten, ist diese Methode am besten geeignet.

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)

Es wird folgendes ausgegeben.

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

Methode Series.value_counts()

Da jedes DataFrame-Objekt eine Sammlung von Series-Objekten ist, wird diese Methode am besten für pandas.Series-Objekte verwendet.

Verwenden Sie jetzt die Series.values_counts() Funktion

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) 

Folgendes wird ausgegeben.

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

Methode df.groupby().size()

Die beiden obigen Methoden können nicht verwendet werden, um die Häufigkeit mehrerer Spalten zu zählen, aber wir können df.groupby().size() für mehrere Spalten gleichzeitig verwenden.

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)

Das Folgende wird ausgegeben.

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

Verwandter Artikel - Pandas DataFrame

  • Schreiben eines Pandas DataFrame nach CSV
  • Pandas DatenFrame kopieren