経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
python

【python】データの抽出|locとilocについて

csvファイルなどからデータを取り入れた後、データの一部を抽出したい場合があります。python上に、データフレームとしてデータがあることを前提に、行番号や列番号を指定してデータの抽出する方法を説明します。

経済統計の使い方では、統計データの入手法から分析法まで解説しています。

【python】pythonのまとめ 経済統計の使い方では、統計データの入手法から分析法まで解説しています。 https://officekaisuiyoku.com...

データフレームの一部を指定

データフレームは、変数名が最初の行にあり、列ごとにデータが格納されています。

行は、0行名が変数名で、1行目からデータが入っています。列は、0列目から列ごとにデータが入っています。下の表のデータBは、2行目0列目のデータということになります。

データフレームに対して行と列を指定すればデータが抽出できますが、locメソッドilocメソッドの2つの方法があります。

0列目1列目
0行目変数名変数名
1行目データAデータC
2行目データBデータD

locメソッド

locメソッドは、行や列の名前を指定する方法です。名前は、’ ‘で囲みます。locはlocationの略です。

新データフレーム名=データフレーム名.loc[ ‘行の名前’, ‘列の名前’]

ilocメソッド

ilocメソッド行番号列番号を指定する方法です。index locationの略です。

行や列の名前を指定するlocメソッドは、プログラムとしてはわかりやすいですが、実際に使うとなると入力が面倒なので、ここでは番号を指定するilocメソッドの説明をします。

抽出して新たなデータフレームを作る場合は、以下のように指定します。

新データフレーム名=データフレーム名.iloc[ 行番号指定 , 列番号指定]

行番号や列番号の指定

行や列を一つだけ選ぶ場合は、行番号や列番号を指定すればよいです。行番号や列番号は0から始まっているところに注意が必要です。連続しない複数の行や列を選ぶ場合は、カッコ[]で括ったうえで、カンマで区切って指定すればよいです。[0,[1,2]]といった形になります。

スライス記法

スライス記法は、:を使って、行や列をスライスして取り出す方法です。要素が0,1,2,3,4,5の時、この記法によって何が取り出せるかをまとめます。a:bの場合、a列からb列の一つ前までが対象となります。一つ前までなので、注意して下さい。マイナスをつけると、後ろ側からの列数を表します。:のみだとすべての要素を表します。

スライス記法結果
1:31,2
2:2,3,4,5
:30,1,2
-15
:0,1,2,3,4,5

実際のデータの加工

0列が日付、1列が景気の状態(拡張期=up、後退期=down)、2列から11列が景気動向指数の構成指標のデータを使って説明します。景気の状態を表す変数と景気動向指数の構成指数のみのデータに分けます。

まず、データを読み込みます。ciという名前のデータフレームができます。

import pandas as pd
ci=pd.read_csv("ci.csv")
ci

次に、このデータフレームを景気動向指数を表すシリーズと景気動向指数の構成指数を表すデータフレームに分けます。まず、景気の状態です。すべての行について、第1列(左から2番目)のデータを取り出します。

cirec=ci.iloc[:,1]
cirec

景気動向指数の構成指標については、すべての行について、第2列から第12列までのデータを取り出します。

cidata=ci.iloc[:,2:12]
cidata

一つの系列だけを抽出するには、ci[‘C1’]という方法もあります。データフレームなのに、一つだけ変数を指定するというやり方です。行列形式なのに、一つだけ指定するという例外的なやり方です。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA