パンダは値のカウントを降順でプロットします

Salman Mehmood 2023年6月21日
パンダは値のカウントを降順でプロットします

この記事の主な目的は、Python の Matplotlib を使用してグラフの値を降順でプロットする方法を示すことです。

Pandas での値のカウントのプロット

問題

必要と状況に応じて、Dataframe を使用して、いつでも大量のデータを保存してアクセスできます。 カスタム使用のために、複数のデータ型を単一の順序付けられたデータ構造に格納する柔軟性を提供します。

Dataframe はデータを保存しますが、データを視覚化する必要がある場合もあります。 Matplotlib を使用すると、データの視覚化は非常に簡単です。

シナリオによっては、データを降順で視覚化する必要がある場合があります。

次のコードを検討してください。

import pandas as pd
import matplotlib.pyplot as plt


keyItems = ("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "d")
idData = ("X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", "X")

df = pd.DataFrame({"keys": keyItems, "ids": idData})
print("\nDataframe:\n" + str(df))
print("\nValue Counts:\n" + str(df.value_counts()))

df.value_counts().plot(kind="barh")

plt.show()

出力:

Dataframe:
   keys ids
0     a   X
1     a   X
2     a   X
3     a   X
4     a   X
5     b   X
6     b   X
7     b   X
8     b   Y
9     b   X
10    c   X
11    c   X
12    c   X
13    d   X

Value Counts:
keys  ids
a     X      5
b     X      4
c     X      3
b     Y      1
d     X      1
dtype: int64

プロット:

問題プロット

上記のコードから、keys とそれに対応する ids が別々に宣言されていることがわかります。すべてのキーは keyItems という名前の変数に格納され、それらの対応する ID は idData という名前の変数に格納されています。 .

Dataframe をインスタンス化した後、value_counts メソッドを使用して、特定の値が発生する頻度を確認します。 その後、グラフをプロットし、matplotlib.plot の一部である show メソッドを使用して画面に表示します。

プロットから、グラフが昇順でプロットされていることがわかります。 プロジェクトの要件またはその他のシナリオに基づいて、出力グラフに表示される昇順ではなく、降順でグラフをプロットする必要がある可能性があります。

ソリューション

グラフをプロットする前に sort_values() を追加すると、値を降順に並べ替えることができます。これにより、出力の一番上に最大値が表示され、出力の一番下に最小値が表示されます。

次のコードを検討してください。

df.value_counts().sort_values().plot(kind="barh")

次のコードは、value_counts() に対する sort_values() の効果を示しています。

print("\nValue Counts:\n" + str(df.value_counts()))
print("\nValue Counts - Sorted:\n" + str(df.value_counts().sort_values()))

完全なコード:

import pandas as pd
import matplotlib.pyplot as plt

keyItems = ("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "d")
idData = ("X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", "X")

df = pd.DataFrame({"keys": keyItems, "ids": idData})
print("\nValue Counts:\n" + str(df.value_counts()))
print("\nValue Counts - Sorted:\n" + str(df.value_counts().sort_values()))

df.value_counts().sort_values().plot(kind="barh")
plt.show()

出力:

Value Counts:
keys  ids
a     X      5
b     X      4
c     X      3
b     Y      1
d     X      1
dtype: int64

Value Counts - Sorted:
keys  ids
b     Y      1
d     X      1
c     X      3
b     X      4
a     X      5

プロット:

問題プロット

sort_values メソッドを使用して values_count の出力を降順で並べ替えることができます。最大の出現がグラフの上部に表示され、最小の出現が出力プロットの一番下に表示されます。

必要に応じて、sort_index メソッドを使用して、値の代わりにインデックスで values_count をソートすることもできます。

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

関連記事 - Pandas Plot