LoginSignup
3
3

More than 1 year has passed since last update.

Python Pandas基礎③ -データ抽出-

Last updated at Posted at 2022-10-02

初めに

Pythonのpandasについて初学者なりにまとめたいと思います。
学習に使っているのはこちらのキノコードです。

学習環境

JupyterLabを使用します。
初心者向けに使い方を紹介してますのでよければご覧ください。

使用するCSVファイル
出典:政府統計の総合窓口(e-Stat)
「男女別人口-全国,都道府県(大正9年~平成27年)」(総務省)を加工して作成

データ抽出の基礎

データの取り込み

まずは、CSVを読み込んでデータフレームを作成するところから始めます。
set_optionで表示列数と行数を変更します。
Pandasをimportし、read_csv関数で読み込んで、dfに代入します。
ipynbファイルと同階層いCSVを配置しておくと、パスを省略し、名前を指定するだけで読み込むことができます。

image.png

スライスで最初の3行を抽出

データフレームオブジェクトにスライスを使用することで、指定の行のデータを抽出することができます。

df[開始位置の行番号:終了位置の行番号]

image.png

カラムをシリーズで抽出

データフレームからカラムをシリーズで取得するには、角括弧でカラム名を指定します。
下記のように記述します。
データフレームの変数['カラム名']

image.png

カラムから条件に一致する値を抽出

特定のカラムにおいて条件に一致する値を取得するには、まずカラムと取得したい値を関係演算子(比較演算子)の==(イコール2つ)で結びます。
こうすることで、カラムの値が2015と等しい値にはTrue、異なる場合にはFalseが、シリーズとして取得されます。
最後に、その記述を角括弧の中に入れると、Trueの値が返された行のみでデータフレームが取得されます。

image.png

カラムから条件に一致しない値を抽出

Not演算子のにょろにょろ(~チルダ)を使用することで、条件を否定したものを抽出できます。
また、比較演算子である、ビックリマーク(!エクスクラメーションマーク)でも表現することが可能です。

image.png

複数条件で抽出

AND条件(かつ)やOR条件(もしくは)で値を抽出することができます。
2つの条件を満たすデータを抽出するには、論理演算子の(&アンパサンド)またはandを使用します。
2つの条件のいずれかを満たすデータを抽出するには、論理演算子のorまたは(|パイプライン) を使用します。

image.png

カラム名の変更

データフレームのカラム名を変更するには、renameメソッドを使用します。
df.rename(columns={'辞書型で': '変更後のカラム名'})と指定します。

image.png

queryメソッドを使用した抽出

queryメソッドを使用することで、特定の条件でデータ抽出をすることができます。
queryメソッドでは、引数に文字列で条件を指定します。

単独条件
image.png

複数条件
image.png

isinメソッドを使用した抽出

isinメソッドを使用してデータ抽出をすることもできます。
isinメソッドは、引数に指定した値が、データフレームの列の値に含まれるか否かをTrueまたはFalseで返します。
なお、引数に渡す値はリスト型で指定します。
この記述をデータフレームの角括弧で囲むと、Trueの値の行のみが抽出されます。

image.png

特定の文字列が含まれるデータを抽出

特定の文字列を含む要素を持つ行のデータを抽出するには、strメソッドとcontainsメソッドを組み合わせて使用します。
strメソッドとは、文字列表現を定義するために用いるメソッドです。
containsメソッドとは、特定の値を含むデータをTrueまたはFalseで返します。

都道府県名に山が含まれるデータを抽出
image.png

特定の文字や文字列から始まるデータを抽出するには、strメソッドとstartswithメソッドを組み合わせて使用します。
特定の文字や文字列で終わるデータを抽出するには、strメソッドとendswithメソッドを組み合わせて使用します。

image.png

最大のデータを抽出

指定した列の最大値に当てはまるデータを抽出するには、まずmaxメソッドを使用します。
続いて、関係演算子(比較演算子)の==(イコール2つ)でdf['西暦(年)'] と結ぶことで、'西暦(年)'の最大値に等しいデータをTrueで返します。
最後に、この記述全体をデータフレームの角括弧で囲むことで、'西暦(年)'の最大値に等しい行がデータフレームとして表示されます。

image.png

locプロパティを使用してデータを抽出

locプロパティで、インデックス名とカラム名を指定してデータを抽出することもできます。
locプロパティの指定方法は、角括弧の中の第1要素にインデックス名、第二要素にカラム名を指定します。

image.png

終わり

覚えること多いですが、基本なのでしっかり押さえたいです。

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3