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

目次に戻る