Python
 Computer >> コンピューター >  >> プログラミング >> Python

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つ(偶数)のため、中央に位置する 100110 の平均である 105.0 が中央値として返されます。一方、「Price」列では [500, 1500, 3000, 3000, 4000, 8000] の中央にあたる 30003000 の平均 3000.0 が結果となります。

このように、median()メソッドを使えば1行のコードで中央値を求められるため、数値データの傾向を把握したい場合に非常に便利です。なお、欠損値(NaN)が含まれる列に対しても、median()メソッドは自動的にNaNを除外して計算を行います。

  1. 【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

  2. 【Python・Pandas】データフレームの特定の列の合計値を取得する方法

    データ分析をしていると、データフレーム(DataFrame)の中から特定の列だけの合計値を求めたい場面によく出会います。そんなときに便利なのが、Pandasのsum関数です。 合計を計算したい列をsum関数に渡すだけで、その列の合計値を簡単に取得できます。さらに、axis引数を指定すれば、列方向・行方向のどちらで集計するかも自由に制御可能です。 それでは、具体的なコード例を見ていきましょう。 サンプルコード import pandas as pd my_data = { Name: pd.Series([Tom, Jane, Vin, Eve, Will]), Age: p