目的別のPandasメソッド・機能 早見表
データの読み込み 💾
様々な形式のファイルからデータを読み込み、DataFrameやSeriesを作成します。
メソッド | 説明 | 主な引数とコード例 |
---|---|---|
pd.read_csv() |
CSV (カンマ区切り) ファイルを読み込みます。最もよく使われる関数の一つです。 |
|
pd.read_excel() |
Excel ファイル (.xls, .xlsx) を読み込みます。openpyxl や xlrd ライブラリが必要です。 |
|
pd.read_json() |
JSON 文字列、URL、またはファイルを読み込みます。JSONの構造に応じて引数調整が必要です。 |
|
pd.read_sql() / pd.read_sql_query() / pd.read_sql_table() |
SQL データベースからデータを読み込みます。SQLAlchemy やデータベース固有のライブラリ (psycopg2 , mysql-connector-python など) が必要です。 |
|
pd.read_html() |
HTML ドキュメント内のテーブル (<table> タグ) を解析し、DataFrameのリストとして返します。lxml , html5lib , beautifulsoup4 のいずれかが必要です。 |
|
pd.read_clipboard() |
クリップボードの内容をDataFrameとして読み込みます。表計算ソフトなどからコピーしたデータを取り込む際に便利です。📋 |
引数は pd.read_csv() とほぼ同じです (sep , header など)。
|
pd.DataFrame() |
Pythonの辞書、リストのリスト、NumPy配列などから直接DataFrameを作成します。 |
|
データ選択・抽出 🔍
DataFrameやSeriesから特定の行、列、または要素を選択・抽出します。
方法 | 説明 | コード例 |
---|---|---|
列選択 ([] , . ) |
特定の列をSeriesとして、または複数の列をDataFrameとして選択します。 |
|
行選択 (スライス [:] ) |
行番号の範囲でスライスして行を選択します。注意: ラベルベースではなく位置ベースのスライスです。.iloc の利用が推奨されます。 |
|
ラベルベース選択 (.loc[] ) |
行ラベルおよび列ラベルに基づいてデータを選択します。スライスの終点も含まれます。 |
|
位置ベース選択 (.iloc[] ) |
行番号および列番号 (0-indexed) に基づいてデータを選択します。Pythonのスライスと同様に、終点は含まれません。 |
|
条件に基づく選択 (Boolean Indexing) | 条件式 (True/False の Series) を [] や .loc[] に渡して、条件を満たす行を選択します。 |
|
.at[] , .iat[] |
単一の値を高速に取得・設定するためのアクセサ。.loc , .iloc のスカラ版。.at[] はラベル、.iat[] は整数位置を使用します。 |
|
.filter() |
行または列のラベルに基づいてフィルタリングします。正規表現も使用可能です。 |
|
.head() , .tail() |
DataFrame や Series の先頭または末尾の数行を取得します。データ確認に便利です。 |
|
.sample() |
データからランダムに行または列をサンプリングします。 |
|
データクリーニング 🧹
欠損値の処理、重複データの削除、データ型の変換など、データを整形・修正します。
メソッド/属性 | 説明 | コード例 |
---|---|---|
.isnull() / .isna() |
各要素が欠損値 (NaN, None, NaT) かどうかを示す boolean の DataFrame/Series を返します。 |
|
.notnull() / .notna() |
各要素が欠損値でないかどうかを示す boolean の DataFrame/Series を返します。.isnull() の逆です。 |
|
.dropna() |
欠損値を含む行または列を削除します。 |
|
.fillna() |
欠損値を指定した値や方法で補完 (穴埋め) します。 |
|
.duplicated() |
重複している行に対して True を返す boolean Series を返します。最初の出現は False になります。 |
|
.drop_duplicates() |
重複した行を削除します。.duplicated() と同様の引数を取ります。 |
|
.astype() |
列のデータ型を変換します。効率的な処理や正しい分析のために重要です。 |
|
.replace() |
特定の値やパターンを別の値で置き換えます。柔軟な置換が可能です。 |
|
.rename() |
行ラベル (インデックス) または列名を変更します。 |
|
データ操作・変換 ⚙️
既存の列から新しい列を作成したり、データを変換・加工したりします。
メソッド/操作 | 説明 | コード例 |
---|---|---|
新しい列の追加 | 既存の列の演算や固定値、他のデータソースから新しい列を作成します。 |
|
列の削除 (del , .pop() , .drop() ) |
不要になった列を削除します。 |
|
.apply() |
行または列に関数を適用します。柔軟な処理が可能ですが、ベクトル化された操作より遅い場合があります。 |
|
.map() (Series) |
Series の各要素を、辞書や関数に基づいて別の値にマッピング (置換) します。 |
|
.applymap() (DataFrame) |
DataFrame の各要素に関数を適用します。要素ごとの操作に使います。 (注意: 将来的に非推奨になる可能性があり、.map() (DataFrame) や .apply(lambda x: x.map(func)) が推奨されることも) |
|
.sort_values() |
特定の一列または複数列の値に基づいて行をソートします。 |
|
.sort_index() |
インデックス (行ラベル) または列名でソートします。 |
|
.reset_index() |
現在のインデックスをリセットし、デフォルトの整数インデックス (0, 1, 2…) に置き換えます。元のインデックスは新しい列として追加できます。 |
|
.set_index() |
既存の列を DataFrame のインデックス (行ラベル) として設定します。 |
|
文字列操作 (.str アクセサ) |
Series の文字列要素に対して、Python の文字列メソッドのような操作 (置換、分割、抽出など) をベクトル化して実行します。 |
|
日時操作 (.dt アクセサ) |
Series の日時 (datetime) 要素に対して、年、月、日、曜日などの要素を抽出したり、フォーマットを変更したりします。データ型が datetime64 である必要があります。 |
|
pd.cut() |
連続値を指定した区間 (ビン) に分割し、カテゴリカルデータに変換します。データの離散化に使用します。 |
|
pd.get_dummies() |
カテゴリカル変数をダミー変数 (ワンホットエンコーディング) に変換します。機械学習の前処理などでよく使われます。 |
|
データ結合・マージ 🔗
複数の DataFrame を結合したり、連結したりします。
メソッド | 説明 | 主な引数とコード例 |
---|---|---|
pd.concat() |
複数の DataFrame や Series を軸に沿って連結します (積み重ねるイメージ)。 |
|
pd.merge() / DataFrame.merge() |
SQL の JOIN 操作のように、特定の列 (キー) またはインデックスを基準に複数の DataFrame を結合します。 |
|
DataFrame.join() |
主にインデックスを基準にして他の DataFrame を結合します。pd.merge() の便利なラッパーですが、デフォルトの挙動が異なります (デフォルトで左結合、インデックス基準)。 |
Note: |
グループ化・集計 📊
特定の列の値に基づいてデータをグループ化し、各グループに対して集計関数 (合計、平均、カウントなど) を適用します。
メソッド | 説明 | コード例 |
---|---|---|
.groupby() |
データをグループ化するためのオブジェクトを作成します。このオブジェクトに対して集計関数を適用します (Split-Apply-Combine 戦略)。 |
|
集計関数 (.sum() , .mean() , .count() , .size() , .min() , .max() , .std() , .var() , .nunique() など) |
groupby() で作成したグループオブジェクトに適用し、各グループの集計値を計算します。 |
|
.agg() / .aggregate() |
groupby() オブジェクトに対して、複数の集計関数を一度に適用したり、列ごとに異なる集計関数を適用したりできます。 |
|
.transform() |
グループごとに計算した結果を、元の DataFrame と同じ形状 (同じインデックス) で返します。グループ内での標準化や欠損値補完などに使用します。 |
|
.filter() (GroupBy) |
グループ全体に対する条件に基づいて、条件を満たすグループのデータのみを抽出します。 |
|
pd.pivot_table() |
スプレッドシートのピボットテーブルのように、データを集計・再形成します。groupby と同様の集計が可能ですが、より表形式での整形に特化しています。 |
|
pd.crosstab() |
2つ(またはそれ以上)の要因のクロス集計表(頻度表)を計算します。カテゴリデータの関連性を分析するのに便利です。 |
|
時系列データ処理 ⏳
日付や時間に関連するデータの操作、リサンプリング、移動窓計算などを行います。
機能/メソッド | 説明 | コード例 |
---|---|---|
pd.to_datetime() |
文字列や数値を Datetime オブジェクト (datetime64[ns] 型) に変換します。時系列分析の基本です。 |
|
DatetimeIndex | DataFrame のインデックスを Datetime オブジェクトにすることで、強力な時系列選択や操作が可能になります。 |
|
.resample() |
時系列データの頻度を変換します (リサンプリング)。ダウンサンプリング (例: 日次 -> 月次) やアップサンプリング (例: 日次 -> 時次) が可能です。DatetimeIndex が必要です。 |
|
移動窓 (Rolling Window) .rolling() |
固定サイズの移動窓をデータ上でスライドさせ、各窓に対して計算 (平均、合計、標準偏差など) を行います。トレンドや移動平均の分析に使用します。 |
|
拡張窓 (Expanding Window) .expanding() |
データの先頭から現在位置までの全てのデータを含む拡張窓に対して計算を行います。累積計算に使用します。 |
|
.shift() |
データを指定した期間数だけ前後にずらします。ラグ特徴量の作成や期間比較に使用します。 |
|
タイムゾーン処理 | タイムゾーン情報を持たない naive な datetime を、特定のタイムゾーンを持つ aware な datetime に変換したり、タイムゾーン間で変換したりします。 |
|
pd.date_range() |
指定した条件に基づいて DatetimeIndex を生成します。時系列データの作成やインデックスの付与に便利です。 |
|
可視化 📈
DataFrame や Series のデータを簡単にグラフ化します。内部的に Matplotlib を使用しています。
メソッド | 説明 | コード例 |
---|---|---|
.plot() |
汎用のプロットメソッド。kind 引数でグラフの種類を指定します。Series は折れ線グラフ、DataFrame は各列を折れ線グラフとしてプロットするのがデフォルトです。 |
Note: |
.plot.<kind>() |
特定のグラフ種類に対応するショートカットメソッド (例: .plot.line() , .plot.bar() など)。.plot(kind='...') と同等です。 |
|
データ出力 📤
DataFrame を様々なファイル形式で保存します。
メソッド | 説明 | 主な引数とコード例 |
---|---|---|
.to_csv() |
DataFrame を CSV ファイルとして出力します。 |
|
.to_excel() |
DataFrame を Excel ファイル (.xlsx) として出力します。openpyxl や XlsxWriter ライブラリが必要です。 |
|
.to_json() |
DataFrame を JSON 文字列またはファイルとして出力します。 |
|
.to_sql() |
DataFrame の内容を SQL データベースのテーブルに書き込みます。SQLAlchemy が推奨されます。 |
|
.to_html() |
DataFrame を HTML のテーブル表現として出力します。 |
|
.to_clipboard() |
DataFrame をクリップボードにコピーします。表計算ソフトなどに貼り付ける際に便利です。📋 |
|
.to_parquet() |
DataFrame を効率的な列指向ストレージ形式である Parquet ファイルとして出力します。pyarrow または fastparquet ライブラリが必要です。 |
|
オプション・設定 ⚙️
Pandas の表示や動作に関する設定を変更します。
オプション設定 | 説明 | コード例 |
---|---|---|
pd.set_option() |
表示行数、表示列数、浮動小数点数の表示形式など、様々なグローバルオプションを設定します。 |
よく使われるオプション:
|
Context Manager (pd.option_context ) |
with 文を使って、一時的にオプション設定を変更します。ブロックを抜けると元の設定に戻ります。 |
|
コメント