Pythonにはpandasというライブラリがある。
このサイトでは初めてpandasを使う際の全体像をつかむことを目的とする。
概要
そもそもpandasとは、csvで書かれたようなデータをpythonで簡単に扱えるようにするためのライブラリである。
pandasには、主にDataSeries
とDataFrame
という2つのクラスがある。
どちらも配列を拡張したようなもので、DataSeries
は一次元、DataFrame
は二次元のデータを扱う。
csvで書かれたデータは、二次元(行と列がある)のでDataFrame
として読み込むことになる。
ここから、一行分や一列分を取り出す(一次元にする)と、DataSeries
として扱われる。
データの読み込み
DataSeries
やDataFrame
は様々なデータを読み込み、作成できる。
代表的な例はcsvファイルの読み込みである。
下記のように書くことで、簡単にcsvファイルからデータを読み込みDataFrame
にすることができる。
import pandas as pd df = pd.read_csv('hoge.csv')
なお、csvファイルにはヘッダーやインデックスを含むことがあるが、これはread_csv
関数の引数として指定が可能である。
データの取得
読み込んだデータは下記のように書くことで取り出して使うことができる。
※df
はDataFrame
のこと
# カラム名が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.loc
やdf.at
といった関数を使うと幸せになれる。
データの書き出し
DataSeries
やDataFrame
はファイルに書き出すことができる。
# bar.csvという名前のファイルに書き出す df.to_csv('bar.csv')
上記の例ではcsvファイル形式で書き出しているが、エクセルファイルやHDF5ファイルへの書き出しも可能だ。
DataSeries
、DataFrame
について詳しく
見てきたようにpandasを使えばcsvファイル等をPythonで簡単に扱うことができる。
しかし、csvファイルを読み書きできるライブラリは他にもあるだろう。
pandasがさらにすごいのは、DataSeries
やDataFrame
のもつ関数や他のライブラリとの連携のしやすさにある。
例えば、df.T
という関数はデータの転置ができるし、df.get_dummys()
を使えばカテゴリ変数をone-hotベクトルに変換できる。
機械学習ライブラリのsklearnやnumpyとも円滑な連携がされていて、pandasで読み込んだデータをすぐに機械学習で利用可能だ。
他にどんな関数があって、どんなライブラリと連携できるかについては調べてもらえればと思う。(まる投げで申し訳ない)
関数については以下のサイトのチートシートが分かりやすいので、まずはこれを眺めてみるのが良いかと思う。