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

Pythonでデータフレームの分布の形状(尖度・歪度)を定量化する方法

データフレームを用意し、その分布の形状を定量化すると、次のような結果が得られます。

kurtosis is:
Column1    -1.526243
Column2     1.948382
dtype: float64

asymmetry distribution - skewness is:
Column1    -0.280389
Column2     1.309355
dtype: float64

解決の手順

この問題を解くには、以下の手順に従います。

  • まず、対象となるデータフレームを定義します。
  • df.kurt(axis=0) を適用して、分布の形状(尖度)を列ごとに計算します。
  • df.skew(axis=0) を適用して、軸0方向の不偏歪度を求め、分布の非対称性を確認します。

尖度と歪度とは?

尖度(kurtosis)は、分布の山の尖り具合や裾の厚さを表す指標です。正規分布では0となり、値が大きいほど裾が厚く、外れ値が出やすい分布であることを示します。

歪度(skewness)は、分布の非対称性を表す指標です。正の値であれば右側に裾が長い(左に偏った)分布、負の値であれば左側に裾が長い(右に偏った)分布であることを意味します。

コード例

以下のコードを実行すると、より理解が深まります。

import pandas as pd

data = {"Column1":[12,34,56,78,90],
        "Column2":[23,30,45,50,90]}
df = pd.DataFrame(data)
print("DataFrame is:\n",df)

kurtosis = df.kurt(axis=0)
print("kurtosis is:\n",kurtosis)

skewness = df.skew(axis=0)
print("asymmetry distribution - skewness is:\n",skewness)

出力結果

DataFrame is:
    Column1 Column2
0      12      23
1      34      30
2      56      45
3      78      50
4      90      90
kurtosis is:
Column1    -1.526243
Column2     1.948382
dtype: float64
asymmetry distribution - skewness is:
Column1    -0.280389
Column2     1.309355
dtype: float64
  1. Pythonで島(図形)の周囲長を求めるアルゴリズムと実装方法

    問題の概要 0が空きセル、1がブロック(図形の一部)を表す2値行列を考えます。このとき、図形の周囲長(外周の長さ)を求めるのが課題です。なお、図形の内部に穴は存在しないものとします。 例えば、次のような入力が与えられた場合を考えてみましょう。 0000000111001100111000000 この場合の出力は 14 になります。 解法のアプローチ 基本的な考え方はシンプルです。各セルは最大で4つの辺を外周に持ちますが、隣接するセルも1である場合、その共有される辺は外周に含まれません。そこで、以下の手順で計算を行います。 d := 0(現在の行インデックス)、perimeter := 0(周

  2. Pythonでひし形を描画・出力するプログラムの書き方

    Pythonのループ処理(繰り返し構文)を活用すると、キーボードのさまざまな文字を使って、整形された図形を簡単に作成できます。その一例が「ひし形(ダイヤモンド形)」です。ひし形の出力には複数のループが必要になります。なぜなら、文字を縦方向と横方向の両方に出力しなければならないからです。さらに、図形は上端から中央に向かって徐々に大きくなり、中央から下端に向かって徐々に小さくなるという特徴もあります。このため、内側にもう1つのforループを含む、2つのforループを使用します。前半のループで上側(頂点から中央まで)を描き、後半のループで下側(中央から底辺まで)を描く仕組みです。サンプルコードdef