Python入門トップページ


目次

  1. Pandas とは
  2. Pandas を利用するための準備
  3. CSV ファイルを読み込む
  4. DataFrame を表示する
  5. 列や行を抽出する
  6. 列名を抽出する
  7. Python リストに変換する
  8. Python リストから DataFrame に変換する
  9. DataFrame から NumPy 配列に変換する
  10. 基本統計量を出力する
  11. CSV ファイルに書き出す
  12. グループ化とピボットテーブル
  13. データフレームの結合(系列名が等しいとき)
  14. データフレームの結合(系列名が異なるとき)
  15. データフレームの連結

Pandas

基本統計量を出力する

まずは準備として GitHub のリポジトリにあるサンプルデータ (clustering-sample.csv) を読み込みます.

CSVファイルを読み込む
import pandas as pd
url = "https://github.com/rinsaka/sample-data-sets/blob/master/clustering-sample.csv?raw=true"
df = pd.read_csv(url)
print(df)
      ID       x       y
0      0  7.4346  6.6520
1      1  6.5419  6.3611
2      2  8.9819  9.2461
3      3  3.8554  4.8386
4      4  1.9527  3.4848
..   ...     ...     ...
295  295  4.1205  1.5010
296  296  9.2843  1.7563
297  297  6.6627  7.3856
298  298  5.7654  6.0543
299  299  2.2411  1.0902

[300 rows x 3 columns]

ID カラムは不要であるので,削除しておきます.

IDカラムの削除
df = df.drop("ID", axis=1)
print(df)
          x       y
0    7.4346  6.6520
1    6.5419  6.3611
2    8.9819  9.2461
3    3.8554  4.8386
4    1.9527  3.4848
..      ...     ...
295  4.1205  1.5010
296  9.2843  1.7563
297  6.6627  7.3856
298  5.7654  6.0543
299  2.2411  1.0902

[300 rows x 2 columns]

目次に戻る

平均

平均は mean() メソッドを使います.

xカラムの平均
df['x'].mean()
6.018139333333333

カラムの取り出し方は他にもあります.

xカラムの平均
df.loc[:, 'x'].mean()
6.018139333333333

別のカラムでも求めてみます.

yカラムの平均
df['y'].mean()
4.261147666666667

すべてのカラムで平均を求めることもできます.

カラムごとの平均
df.mean()
x    6.018139
y    4.261148
dtype: float64

すべてのカラムで平均を求めた後,個別の結果を取り出してみます.

結果の抽出方法
m = df.mean()
print(m[0])
print(m[1])
6.018139333333333
4.261147666666667

目次に戻る

最大・最小

最大は max() メソッド,最小は min() メソッドを使います.

xカラムの最大値
df['x'].max()
9.8278
x カラムの最小値
df['x'].min()
1.005
各カラムの最大値
df.max()
x    9.8278
y    9.8951
dtype: float64
各カラムの最小値
df.min()
x    1.0050
y    0.0457
dtype: float64

中央値

中央値は median() メソッドを使います.(最頻値は mode() ですがこのデータでの実行は省略します.)

xカラムの中央値
df['x'].median()
6.66245

各カラムの中央値
df.median()
x    6.66245
y    3.48935
dtype: float64

目次に戻る

標準偏差

標準偏差は std() で求めることができます.このとき,特に引数を指定しなければ,母集団の標準偏差を求めることに注意してください.つまり,データ数を \( N \) とすると,\( N-1 \) で割った結果になります.

母集団の標準偏差 (N-1で割ったもの)
df['x'].std()
2.5164113047290417

メソッド std() には ddof 引数を指定することができます.ddof は Delta Degrees of Freedom であり,\( N - ddof \) で割ることを意味します.引数省略時は ddof = 1 であるので,次の場合も母集団の標準偏差が出力される(省略時の ddof が NumPy の std( ) とは異なるので注意が必要です).

母集団の標準偏差:N-1で割ったもの)
df['x'].std(ddof=1)
2.5164113047290417

標本の標準偏差は \( N \) で割れば良いので,ddof = 0 を指定すると求められる.

標本の標準偏差:Nで割ったもの
df['x'].std(ddof=0)
2.5122137850349353

カラムごとに標本の標準偏差を求めます.

標本の標準偏差:Nで割ったもの
df.std(ddof=0)
x    2.512214
y    2.824738
dtype: float64

目次に戻る

基本統計量

いくつかの基本統計量をまとめて得ることもできます.これには describe() メソッドを使うと良いでしょう.ここで std は標本ではなく母集団の標準偏差が出力されていることに注意します.

基本統計量
df.describe()
pandas-07

目次に戻る

相関係数

相関係数 (correlation coefficient) を求めるには corr() メソッドを使います.

相関係数
df.corr()
pandas-08

目次に戻る