Pandasで列値の分布をプロットする方法


次のメソッドを使用して、pandas DataFrame の列値の分布をプロットできます。

方法 1: 列内の値の分布をプロットする

 df[' my_column ']. plot (kind=' kde ')

方法 2: 1 つの列の値の分布を別の列でグループ化してプロットする

 df. groupby (' group_column ')[' values_column ']. plot (kind=' kde ')

次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [3, 3, 4, 5, 4, 7, 7, 7, 10, 11, 
                              8, 7, 8, 9, 12, 12, 12, 14, 15, 17]})

#view DataFrame
print (df)

   team points
0 to 3
1 to 3
2 to 4
3 to 5
4 to 4
5 TO 7
6 to 7
7 to 7
8 to 10
9 to 11
10 B 8
11 B 7
12 B 8
13 B 9
14 B 12
15 B 12
16 B 12
17 B 14
18 B 15
19 B 17

例 1: 列内の値の分布をプロットする

次のコードは、ポイント列の値の分布をプロットする方法を示しています。

 #plot distribution of values in points column
df[' points ']. plot (kind=' kde ')

kind=’kde’ は、変数の値の分布を要約する滑らかな曲線を生成するカーネル密度推定を使用するように pandas に指示することに注意してください。

代わりにヒストグラムを作成したい場合は、次のようにkind=’hist’を指定できます。

 #plot distribution of values in points column using histogram
df[' points ']. plot (kind=' hist ', edgecolor=' black ') 

この方法では、分布の形状を要約する滑らかな線ではなく、棒を使用して点の列内の値の頻度を表します。

例 2: 1 つの列の値の分布を別の列でグループ化してプロットする

次のコードは、チーム列ごとにグループ化されたポイント列の値の分布をプロットする方法を示しています。

 import matplotlib.pyplot as plt

#plot distribution of points by team 
df. groupby (' team ')[' points ']. plot (kind=' kde ')

#add legend
plt. legend ([' A ',' B '], title=' Team ')

#add x-axis label
plt. xlabel (' Points ')

青い線はチーム A の選手のポイント分布を示し、オレンジ色の線はチーム B の選手のポイント分布を示します。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas でプロットにタイトルを追加する方法
パンダプロットの図のサイズを調整する方法
複数の Pandas DataFrame をサブプロットにプロットする方法
Pandas でプロット凡例を作成およびカスタマイズする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です