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

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

Manchmal, wenn Sie mit Datenrahmen 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 Serie.value_counts()

Da jedes Datenrahmen-Objekt eine Sammlung von Serien-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

comments powered by Disqus