Python Pandas¶
はじめに¶
公式サイト¶
公式サイトのドキュメントメモ¶
インストールとセットアップ¶
pip install pandas
慣習的に、pdの別名でpandasモジュールをインポートします。
import pandas as pd
簡単なpandasの概要¶
pandasは、データフレームという構造でデータを保持し、ファイルからデータフレームへの読み込みとファイルへの書き出し、データフレームのデータ解析を行うライブラリです。
データフレームは、行と列で構成される表形式のデータ構造です。
読み込み・書き出し可能なファイル形式は、csv, Excel, HTML, HDF5, JSON, 他です。df = pd.read_csv("foo.csv")
データの可視化(プロット)は範疇外です。matplotlibなどの別ライブラリと組み合わせます。
データ構造には1次元のベクトルも提供され、v = pd.Series([1, 2, 3, 5, 7])
のように使います。
APIの使い方¶
外部データの読み込み¶
CSVファイルの読み込み¶
ヘッダー付きのCSVファイルを読み込み、DataFrameオブジェクトに格納します。
df = pd.read_csv('sample_with_header.csv')
- コメント行を読み飛ばすには、
comment='#'
のようにオプションを指定 - ヘッダーが先頭行にない場合は、行数が分かれば
skiprows=3
のように先頭から指定行を読み飛ばす - ヘッダーを置き換えたい場合、
namems=('A', 'B', 'C') header=0
と指定header=None
と指定すると、CSVファイルの先頭がデータとして読み込まれてしまう- データの列数と列名のリストの要素数がミスマッチの時は、列名が後ろに合うように付与される模様
- 読み込んだデータの行数、列数:
df.shape
タプルで(行数、列数)が返る - ヘッダーの列名リスト:
df.columns
- データのリスト:
df.values
ヘッダーなしのCSVファイルを読み込み、列名の情報を別途与えてDataFrameオブジェクトに格納
column_names = ['id', 'code', 'name', 'quantity']
df = pd.read_csv('sample_without_header.csv', names=column_names, header=None)
- ヘッダーのないCSVファイルからデータを読み込むとき(先頭からデータとして読み込む)、
header=None
を指定
DataFrameへのアクセス¶
DataFrameからデータの取り出し¶
- データを行列を数値で指定して取得:
df.iloc[0,2]
0オリジンで行と列を指定 - データを行番号、列名で指定して取得:
df.loc[2, "age"]
3行目の列名ageに対応する列を指定- 複数の行、または列の指定も可能、スライスまたはリストで指定
- 列名をリストで指定したとき、名前付きタプルらしきものが返る
df.loc[1, ["name", "age"]]