pandasの全体像をまとめる

Pythonにはpandasというライブラリがある。
このサイトでは初めてpandasを使う際の全体像をつかむことを目的とする。

概要

そもそもpandasとは、csvで書かれたようなデータをpythonで簡単に扱えるようにするためのライブラリである。
pandasには、主にDataSeriesDataFrameという2つのクラスがある。
どちらも配列を拡張したようなもので、DataSeriesは一次元、DataFrameは二次元のデータを扱う。

csvで書かれたデータは、二次元(行と列がある)のでDataFrameとして読み込むことになる。
ここから、一行分や一列分を取り出す(一次元にする)と、DataSeriesとして扱われる。

データの読み込み

DataSeriesDataFrameは様々なデータを読み込み、作成できる。
代表的な例はcsvファイルの読み込みである。
下記のように書くことで、簡単にcsvファイルからデータを読み込みDataFrameにすることができる。

import pandas as pd

df = pd.read_csv('hoge.csv')

なお、csvファイルにはヘッダーやインデックスを含むことがあるが、これはread_csv関数の引数として指定が可能である。

データの取得

読み込んだデータは下記のように書くことで取り出して使うことができる。
dfDataFrameのこと

# カラム名がfooの列を取得
print(df['foo'])

# カラム名がfooの列の1行目の値を取得
print(df['foo'][0])

データの変更、追加

DataFrame DataSeriesは簡単に変更を加えることができる。

# カラム名がfooの列の1行目の値を0に変更
df['foo'][0] = 0

# カラム名がfooの列を全て0に変更
df['foo'] = 0

# 指定したカラムが存在ない場合は新しく追加される
df['bar'] = 0

ただし、上記1つ目の例のように[]を2つ以上続けて書く場合には正しく値が代入されないことがある。
この時はdf.locdf.atといった関数を使うと幸せになれる。

データの書き出し

DataSeriesDataFrameはファイルに書き出すことができる。

# bar.csvという名前のファイルに書き出す
df.to_csv('bar.csv')

上記の例ではcsvファイル形式で書き出しているが、エクセルファイルやHDF5ファイルへの書き出しも可能だ。

DataSeriesDataFrameについて詳しく

見てきたようにpandasを使えばcsvファイル等をPythonで簡単に扱うことができる。
しかし、csvファイルを読み書きできるライブラリは他にもあるだろう。
pandasがさらにすごいのは、DataSeriesDataFrameのもつ関数や他のライブラリとの連携のしやすさにある。

例えば、df.Tという関数はデータの転置ができるし、df.get_dummys()を使えばカテゴリ変数をone-hotベクトルに変換できる。
機械学習ライブラリのsklearnnumpyとも円滑な連携がされていて、pandasで読み込んだデータをすぐに機械学習で利用可能だ。

他にどんな関数があって、どんなライブラリと連携できるかについては調べてもらえればと思う。(まる投げで申し訳ない)
関数については以下のサイトのチートシートが分かりやすいので、まずはこれを眺めてみるのが良いかと思う。

qiita.com