Maison  >  Article  >  développement back-end  >  Comment créer un graphique à barres empilées dans Pandas avec des données groupées ?

Comment créer un graphique à barres empilées dans Pandas avec des données groupées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-21 19:37:03130parcourir

How to Create a Stacked Bar Chart in Pandas with Grouped Data?

Tracer un graphique à barres empilées à l'aide de Pandas

Question :

Comment puis-je créer un graphique à barres empilées avec des pandas, similaire à l'image fournie ? Mon cadre de données actuel se compose de colonnes distinctes pour les comptes « Nom du site » et « Abus/NFF », et je ne parviens pas à organiser les données ou à générer le graphique à barres empilées.

Solution :

1. Préparation des données :

Créez un nouveau cadre de données en regroupant les données par « Nom du site » et « Abus/NFF » et en comptant les occurrences de chaque combinaison.

2 . Empiler les données :

Utilisez la méthode .unstack() pour créer une trame de données empilée, avec « Nom du site » comme index et « Abuse/NFF » comme colonnes.

3. Remplissage des valeurs manquantes :

Gérez toutes les valeurs manquantes en les remplissant avec des zéros à l'aide de la méthode .fillna(0).

4. Tracer le graphique à barres :

Utilisez la méthode .plot() avec le paramètre kind défini sur 'bar' et le paramètre empilé défini sur True pour générer un graphique à barres empilées.

Code Python :

<code class="python">import pandas as pd
import matplotlib.pyplot as plt

# Create a dataframe from the CSV file
df = pd.read_csv("data.csv")

# Group by "Site Name" and "Abuse/NFF" and count occurrences
df2 = df.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0)

# Plot the stacked bar chart
df2[['abuse','nff']].plot(kind='bar', stacked=True)
plt.show()</code>

Sortie :

Le tracé résultant ressemblera à l'image fournie dans la question d'origine, affichant le nombre empilé de "Abus" et "NFF" pour chaque "Nom du site".

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