Skip to content

Pandas 早見表 (Cheat Sheet)

Pandas ライブラリを使用するための詳細なガイドです。

Pandas のインストール

コマンド 説明
conda install pandas Pandas を取得する最適な方法は conda 経由です
python3 -m pip install --upgrade pandas PyPI 経由
pip install pandas 標準的な pip インストール

重要な略語とパッケージのインポート

略語 説明
df 任意の Pandas DataFrame オブジェクト
s 任意の Pandas Series オブジェクト

インポート方法

コマンド 説明
import pandas as pd Pandas を pd というエイリアスでインポート
import numpy as np Numpy を np というエイリアスでインポート

データの選択

コマンド 説明
df[col] 列名に基づいて列を Series として返す
df[[col1, col2]] 複数の列を DataFrame として返す
s.iloc[0] 位置によってデータを選択
s.loc['index_one'] インデックスによってデータを選択
df.iloc[0,:] 最初の行を返す
df.iloc[0,0] 最初の列の最初の要素を返す

データのクリーニング

コマンド 説明
df.columns = ['a','b','c'] 列名を変更
pd.isnull() DataFrame 内の null 値をチェックし、Boolean 配列を返す
pd.notnull() DataFrame 内の null でない値をチェックし、Boolean 配列を返す
df.dropna() null 値を含むすべての行を削除
df.dropna(axis=1) null 値を含むすべての列を削除
df.dropna(axis=1, thresh=n) 非 null 値が n 個未満の行をすべて削除
df.fillna(x) DataFrame 内のすべての null 値を x で置換
s.astype(float) Series のデータ型を float に変換
s.replace(1, 'one') 1 に等しいすべての値を ‘one’ で置換
s.replace([1,3], ['one', 'three']) 1 を ‘one’ に、3 を ’three’ に置換
df.rename(columns=lambda x: x + 1) 列名を一括変更
df.rename(columns={'old_name': 'new_name'}) 特定の列名を選択して変更
df.set_index('column_one') インデックス列を変更
df.rename(index=lambda x: x + 1) インデックスを一括変更

データのインポート

コマンド 説明
pd.read_csv(filename) CSV ファイルからデータをインポート
pd.read_table(filename) 区切り文字付きのテキストファイルからデータをインポート
pd.read_excel(filename) Excel ファイルからデータをインポート
pd.read_sql(query, connection_object) SQL テーブル/データベースからデータをインポート
pd.read_json(json_string) JSON 文字列からデータをインポート
pd.read_html(url) URL、文字列、または HTML ファイルからテーブルを抽出
pd.read_clipboard() クリップボードからコンテンツを取得し、read_table() に渡す
pd.DataFrame(dict) 辞書オブジェクトからデータをインポート (Key は列名、Value はデータ)

データの操作: Filter, Sort, GroupBy

コマンド 説明
df[df[col] > 0.5] 列 ‘col’ の値が 0.5 より大きい行を選択
df.sort_values(col1) 列 col1 でデータをソート (デフォルトは昇順)
df.sort_values(col2, ascending=False) 列 col2 を降順でソート
df.sort_values([col1, col2], ascending=[True, False]) col1 は昇順、col2 は降順でソート
df.groupby(col) 列 ‘col’ でグループ化した GroupBy オブジェクトを返す
df.groupby([col1, col2]) 複数の列でグループ化した GroupBy オブジェクトを返す
df.groupby(col1)[col2].mean() col1 の各グループに対する col2 の平均値を返す
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) col1 でグループ化し、col2 と col3 の最大値を計算するピボットテーブルを作成
df.groupby(col1).agg(np.mean) col1 でグループ化したすべての列の平均値を返す
df.apply(np.mean) 各列に関数 np.mean を適用
df.apply(np.max, axis=1) 各行に関数 np.max を適用

テストオブジェクトの作成

コマンド 説明
pd.DataFrame(np.random.rand(20,5)) 20行5列の乱数で構成される DataFrame を作成
pd.Series(my_list) 反復可能オブジェクト my_list から Series を作成
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) 日付インデックスを追加

データの表示と検査

コマンド 説明
df.head(n) DataFrame の最初の n 行を表示
df.tail(n) DataFrame の最後の n 行を表示
df.shape 行数と列数を表示
df.info() インデックス、データ型、メモリ情報を表示
df.describe() 数値列の要約統計を表示
s.value_counts(dropna=False) Series の一意の値とカウントを表示
df.apply(pd.Series.value_counts) DataFrame の各列の一意の値とカウントを表示

データの結合

コマンド 説明
df1.append(df2) df2 の行を df1 の末尾に追加
pd.concat([df1, df2], axis=1) df2 の列を df1 の末尾に追加
df1.join(df2, on=col1, how='inner') df1 と df2 の列間で SQL スタイルの結合 (Join) を実行

データ統計

コマンド 説明
df.describe() 数値列の要約統計を表示
df.mean() すべての列の平均値を返す
df.corr() 列間の相関係数を返す
df.count() 各列の非 null 値の個数を返す
df.max() 各列の最大値を返す
df.min() 各列の最小値を返す
df.median() 各列の中央値を返す
df.std() 各列の標準偏差を返す