Maison >développement back-end >Tutoriel Python >Comment compter les lignes en fonction des valeurs de colonnes communes dans un DataFrame Pandas ?

Comment compter les lignes en fonction des valeurs de colonnes communes dans un DataFrame Pandas ?

DDD
DDDoriginal
2024-10-26 08:01:02620parcourir

How to Count Rows Based on Common Column Values in a Pandas DataFrame?

Compter les lignes en fonction des valeurs de colonne communes dans un dataframe

De nombreux ensembles de données contiennent des lignes en double avec des valeurs identiques pour des colonnes spécifiques. Pour analyser la fréquence de ces occurrences, nous pouvons utiliser des techniques de regroupement DataFrame.

Considérons un DataFrame composé de colonnes « Group » et « Size » :

Group Size Time
Short Small 2
Moderate Medium 1
Moderate Small 1
Tall Large 1

GroupBy et Size

La fonction pandas groupby nous permet de regrouper les lignes en fonction des colonnes spécifiées. La fonction size fournit un moyen pratique de compter le nombre de lignes dans chaque groupe.

<code class="python">import pandas as pd

# Load the sample data
data = {'Group': ['Short', 'Short', 'Moderate', 'Moderate', 'Tall'], 'Size': ['Small', 'Small', 'Medium', 'Small', 'Large']}
df = pd.DataFrame(data)

# Group by "Group" and "Size" columns
dfg = df.groupby(by=["Group", "Size"]).size()</code>

Cette opération renverrait une série avec le résultat suivant :

Group     Size
Moderate  Medium    1
          Small     1
Short     Small     2
Tall      Large     1
dtype: int64

Réinitialiser Index et optionnalité

Pour convertir la série en DataFrame avec une colonne pour les décomptes, nous pouvons utiliser reset_index et spécifier un nom pour la nouvelle colonne :

<code class="python">dfg = df.groupby(by=["Group", "Size"]).size().reset_index(name="Time")</code>

De plus, en fonction de vos besoins spécifiques, vous pouvez utiliser des variantes de la fonction groupby avec le paramètre as_index :

<code class="python"># Option 1: Explicitly set index to True
dfg = df.groupby(by=["Group", "Size"], as_index=True).size()

# Option 2: Leave index unchanged (default)
dfg = df.groupby(by=["Group", "Size"]).size()

# Option 3: Explicitly set index to False
dfg = df.groupby(by=["Group", "Size"], as_index=False).size()</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn