web-dev-qa-db-ja.com

Pandas-積み上げ棒グラフのプロット

写真を複製する積み上げ棒グラフを作成しようとしていますが、すべてのデータはそのExcelスプレッドシートとは別です。

enter image description here

写真のようにデータフレームを作成する方法を理解することも、積み上げ棒グラフを作成する方法を理解することもできません。私が見つけたすべての例は、作成しようとしているものとは異なる方法で機能します。

私のデータフレームは、pandasデータフレームで以下に絞り込まれたすべての値のcsvです。

      Site Name    Abuse/NFF
0    NORTH ACTON       ABUSE
1    WASHINGTON         -
2    WASHINGTON        NFF
3    BELFAST            -
4    CROYDON            - 

合計でデータをカウントし、各サイトの個別のカウントを取得することができましたが、グラフ化する方法でそれを組み合わせることができないようです。

いくつかの強力なガイダンスを本当に感謝します。

完成したコード。支援の完了に感謝します。

test5 = faultdf.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0)

test5.plot(kind='bar', stacked=True)
34
Kuzen

エラーが発生していますか、またはどこから始めればいいのかわかりませんか?

%pylab inline
import pandas as pd
import matplotlib.pyplot as plt

df2 = df.groupby(['Name', 'Abuse/NFF'])['Name'].count().unstack('Abuse/NFF').fillna(0)
df2[['abuse','nff']].plot(kind='bar', stacked=True)

stacked bar plot

76
chucklukowski

それは役立つはずです

df.groupby(['NFF', 'ABUSE']).size().unstack().plot(kind='bar', stacked=True)
14
Domino

pandas crosstab function を使用できます

test5 = pd.crosstab(index=faultdf['Site Name'], columns=faultdf[''Abuse/NFF''])

test5.plot(kind='bar', stacked=True)