機械学習勉強記録 Pandasの基礎


Pandasとは

機械学習のプログラミングでよく用いられるライブラリで、データ解析を容易にする機能を持っています。
データフレーム(DataFrame)などの独自のデータ構造によって様々な処理が可能になります。

モジュール、パッケージ、ライブラリについて

  • モジュール…関数を格納する部品のようなもの。「.py」というテキストファイル。例えるなら基盤。
  • パッケージ…モジュールの集まり。例えるなら炊飯器。
  • ライブラリ…パッケージをいくつかまとめてインストールできるようにしたもの。例えるならキッチン。

Pandas基本操作

Pandasのインストール

import pandas as pdと最初に入力しておけば、そのファイル内でpdと入力すればPandasのライブラリの中にある機能を使うことができるようになります。

データの読み込み

csvファイルを読み込む時はこのようにします。

# CSVファイルの読み込み
pd.read_csv('sample.csv')
# 読み込んだCSVファイルをdfという変数に代入
df = pd.read_csv('sample.csv')

このような形で、読み込まれた時、データの型は、

type(df)
"""
出力結果 : pandas.core.frame.DataFrame
"""

となります。これはデータフレームと呼ばれる型であることを意味しています。

読み込んだデータを確認する方法として、
df.shape データの形を表示(行数、列数を確認)
df.head(3) データフレームの上から3行を表示
df.tail(3) データフレームの下から3行を表示
などがあります。

データの切り分け

ilocメソッドを使います。

# 1行目、1列目を切り出してtに代入
t = df.iloc[0, 0]
# 全ての行、1列目を切り出してtに代入
t = df.iloc[:, 0]
# 全ての行、2列目以降を切り出してtに代入
t = df.iloc[:, 1:]
# 列名(ラベル)を直接指定して切り出してtに代入
t = df['A']
t = df.loc[:, 'A']
# 複数の列名(ラベル)を指定して切り出してtに代入
t = df.loc[:, ['A', 'B']]

iloclocの違い

loc 行ラベル、 列ラベルを指定して切り出し
iloc 行の番号(0 ~ )、列の番号(0 ~ )を指定して切り出し

データの並び替え

sort_valueメソッドを使います。

# Aの列を昇順で並び替え
df.sort_values('A')
# Aの列を降順で並び替え
df.sort_values('A', ascending=False)

列の追加・削除

dropメソッドを使います。

#aという変数に3行1列のデータフレームを代入
a = pd.DataFrame([[1],[2],[3]])
# Aというラベル名の列にaを追加
df['A'] = a
# dfからAというラベル名の列の削除
df.drop(labels='A',axis=1)

追加の際は、追加する列の行数が追加するデータフレームの行数と一致していないとエラーが起こります。

axis=1は列方向に削除
axis=0は行方向に削除
するための引数です。

データの絞り込み

A列の値が3のデータだけ表示させる時は、

# dfというデータフレームで、A列の値が3の行を表示
df[df['A'] == 3].head()

となります。
複数条件をつける時は、

# dfというデータフレームで、A列の値が3、かつBの値が4の行を表示
df[(df['A'] == 3) & (df['B'] == 4)].head()
# dfというデータフレームで、A列の値が3、またはBの値が4の行を表示
df[(df['A'] == 3) | (df['B'] == 4)].head()

となります。