Python・PandasでDataFrameの列の中央値を計算する方法
PythonのPandasライブラリでは、median()メソッドを使うことで、DataFrameの列値の中央値を簡単に計算できます。中央値とは、データを昇順に並べ替えたときに中央に位置する値のことで、外れ値の影響を受けにくい統計量として知られています。データ数が偶数の場合は、中央に近い2つの値の平均が中央値となります。
まずは、必要なPandasライブラリをインポートしましょう。
import pandas as pd
DataFrameを作成する
次に、「Car(車名)」と「Units(台数)」の2つの列を持つDataFrameを作成します。
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)
median()メソッドで特定の列の中央値を求める
「Units」列の中央値を取得するには、以下のようにmedian()メソッドを呼び出します。
print("DataFrame1のUnits列の中央値 = ", dataFrame1['Units'].median())
同じ方法で、2つ目のDataFrameの「Price(価格)」列についても中央値を計算できます。
完全なサンプルコード
以下に、2つのDataFrameに対して中央値を計算する完全なコードを示します。
import pandas as pd
# DataFrame1を作成
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)
print("DataFrame1 ...\n", dataFrame1)
# 「Units」列の値の中央値を求める
print("DataFrame1のUnits列の中央値 = ", dataFrame1['Units'].median())
# DataFrame2を作成
dataFrame2 = pd.DataFrame(
{
"Product": ['TV', 'PenDrive', 'HeadPhone', 'EarPhone', 'HDD', 'SSD'],
"Price": [8000, 500, 3000, 1500, 3000, 4000]
}
)
print("\nDataFrame2 ...\n", dataFrame2)
# 「Price」列の値の中央値を求める
print("DataFrame2のPrice列の中央値 = ", dataFrame2['Price'].median())
実行結果
上記のコードを実行すると、以下のような出力が得られます。
DataFrame1 ...
Car Units
0 BMW 100
1 Lexus 150
2 Audi 110
3 Tesla 80
4 Bentley 110
5 Jaguar 90
DataFrame1のUnits列の中央値 = 105.0
DataFrame2 ...
Price Product
0 8000 TV
1 500 PenDrive
2 3000 HeadPhone
3 1500 EarPhone
4 3000 HDD
5 4000 SSD
DataFrame2のPrice列の中央値 = 3000.0
解説
「Units」列の値を昇順に並べると [80, 90, 100, 110, 110, 150] となり、データ数が6つ(偶数)のため、中央に位置する 100 と 110 の平均である 105.0 が中央値として返されます。一方、「Price」列では [500, 1500, 3000, 3000, 4000, 8000] の中央にあたる 3000 と 3000 の平均 3000.0 が結果となります。
このように、median()メソッドを使えば1行のコードで中央値を求められるため、数値データの傾向を把握したい場合に非常に便利です。なお、欠損値(NaN)が含まれる列に対しても、median()メソッドは自動的にNaNを除外して計算を行います。
-
【Python】Pandasのreplace()メソッドでDataFrameの値を別のDataFrameの値に置き換える方法
Pandasでは、replace()メソッドを使うことで、あるDataFrameの値を別のDataFrameから取得した値に簡単に置き換えることができます。この記事では、2つのDataFrameを作成し、片方の値をもう片方の値で置き換える手順を、サンプルコードと実行結果とともにわかりやすく解説します。 基本的な流れ まず、元となる1つ目のDataFrameを作成します。 dataFrame1 = pd.DataFrame({Car: [Audi, Lamborghini], Place: [US, UK], Units: [200, 500]}) 次に、置き換え先となる2つ目のDataFram
-
【Python・Pandas】データフレームの特定の列の合計値を取得する方法
データ分析をしていると、データフレーム(DataFrame)の中から特定の列だけの合計値を求めたい場面によく出会います。そんなときに便利なのが、Pandasのsum関数です。 合計を計算したい列をsum関数に渡すだけで、その列の合計値を簡単に取得できます。さらに、axis引数を指定すれば、列方向・行方向のどちらで集計するかも自由に制御可能です。 それでは、具体的なコード例を見ていきましょう。 サンプルコード import pandas as pd my_data = { Name: pd.Series([Tom, Jane, Vin, Eve, Will]), Age: p