Pandasで2つの列間の相関関係を取得する方法
Pandasでは、.corr()メソッドを使うことで、DataFrame内の2つの列(カラム)間の相関係数を簡単に求めることができます。デフォルトではピアソンの相関係数が計算され、その値は-1から1の範囲で表されます。値が1に近いほど正の相関が強く、-1に近いほど負の相関が強いことを意味します。ここでは、具体的な例を通してこのメソッドの使い方を解説します。
手順
- サイズ変更可能な2次元の表形式データであるDataFrame(df)を作成します。
- 入力のDataFrame(df)を表示して内容を確認します。
- 相関を調べたい列名をcol1とcol2という変数に代入します。
df[col1].corr(df[col2])を使って2列間の相関係数を計算し、変数corrに保存します。- 計算結果のcorrを表示します。
コード例
import pandas as pd
df = pd.DataFrame(
{
"x": [5, 2, 7, 0],
"y": [4, 7, 5, 1],
"z": [9, 3, 5, 1]
}
)
print("入力DataFrame:\n", df)
col1, col2 = "x", "y"
corr = df[col1].corr(df[col2])
print(f"{col1}と{col2}の相関係数は: {round(corr, 2)}")
col1, col2 = "x", "x"
corr = df[col1].corr(df[col2])
print(f"{col1}と{col2}の相関係数は: {round(corr, 2)}")
col1, col2 = "x", "z"
corr = df[col1].corr(df[col2])
print(f"{col1}と{col2}の相関係数は: {round(corr, 2)}")
col1, col2 = "y", "x"
corr = df[col1].corr(df[col2])
print(f"{col1}と{col2}の相関係数は: {round(corr, 2)}")
実行結果
入力DataFrame: x y z 0 5 4 9 1 2 7 3 2 7 5 5 3 0 1 1 xとyの相関係数は: 0.41 xとxの相関係数は: 1.0 xとzの相関係数は: 0.72 yとxの相関係数は: 0.41
結果のポイント
同じ列同士(「x」と「x」など)の相関係数は必ず1.0になります。また、「x」と「y」の組み合わせと「y」と「x」の組み合わせでは、どちらも同じ値0.41が返されることから、相関係数は列の順序に依存しないことも分かります。さらに、「x」と「z」の相関係数は0.72であり、比較的強い正の相関があることが読み取れます。
-
Androidで2つの日付の差分(日数)を取得する方法【サンプルコード付き】
はじめに この記事では、Androidアプリで2つの日付の差分(日数)を取得する方法を、実際に動作するサンプルコードとともに解説します。日付の差分計算は、利用期間の表示やイベントまでの残り日数のカウントなど、さまざまな場面で役立つ基本的な処理です。 実装の手順 ステップ1:Android Studioで新規プロジェクトを作成 Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_main.xml)の編集 res/layout/ac
-
Androidで2つの地理的な地点間の距離を取得する方法
この記事では、Androidアプリで2つの地理的な地点(緯度・経度)の間の距離を取得し、画面に表示する方法を解説します。Androidフレームワークが提供するLocationクラスのdistanceTo()メソッドを使うと、2地点間の距離を簡単に計算できます。 ステップ1:新しいプロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:activity_main.xmlにコードを追加する res/layout/activity_main.xmlに