注目キーワード

【Python】pandasのデータフレームに loc 経由でアクセスする方法

これまでもpandasのDataFrameに対するデータ処理を紹介してきました。こちらの記事では、pythonのlistの各要素に処理を行う関数であるmap()を参考に、DataFrameの列(Series)の各要素に処理を適用するデータ処理の方法を見てみます。

インストール

これまでのpandasの記事と同様に、pandasがインストールされていない場合には

インストールが必要です。インストールされていない場合には、pip install pandas を実行しておく必要があります。

サンプルデータ

以前「【Python】pandasの列にmapを適用してデータを加工する」という記事でも利用した都道府県(一部)の面積と人口の小さいデータを利用します。

データを読み込み指定したインデックス名でデータにアクセスする

上のサンプルデータを読み込み、いろいろな形でデータにアクセスしてみます。

サンプルソース

サンプルの実装です。

  • はじめにデータフレームを読み込みます。
    • これは以前の記事と同じですが、百万人単位の人口のデータを作成しておきます。
  • 北海道のデータに対して、アクセスします。
    • 北海道の全てのデータを取得します。
    • 北海道の面積の値だけを取得します。
    • 北海道の面積部分のデータフレームに注目して取得します。
    • 北海道の面積と人口を取得します。
  • 条件を指定してアクセスを行う例を見ます。
    • データフレームに対して、面積が15000を超える部分をloc経由でアクセスします。

実行結果

実行結果を確認します。

それぞれ確認してみます。

  • 北海道のデータ処理について
    • 北海道のrowが全て出力されました。
    • 数値(面積)だけが出力されました。
    • データフレームのデータ構造が保持された状態で面積の情報が出力されました。
    • 面積と人口が両方出力されました。
  • 条件指定について
    • 面積の条件を満たす北海道と岩手の部分データフレームが出力されました。

このように柔軟にデータにアクセスすることができました。

列に注目したサンプルソース

サンプルの実装その2です。

ここではインデックスの方を複数にしたり、全部の指定にしたりして動作を確認しています。

  • はじめにデータを読み込みます。
  • 全てのインデックスについて面積を取得します。
  • 北海道と青森に注目して、面積を取得します。
  • 北海道と青森に注目して、面積と人口を取得します

実行結果

実行結果です。上で説明した意図通り、データにアクセスできていることが分かります。

スポンサーリンク

このようにデータフレームの各要素(数値)や部分(データフレーム)に柔軟にアクセスすることで、対象となるデータに注目した処理や加工・解析が可能になります。いろんなデータをどんどん読み込み、いろんなアクセスを試してみてくださいね。