csvファイルなどからデータを取り入れた後、データの一部を抽出したい場合があります。python上に、データフレームとしてデータがあることを前提に、行番号や列番号を指定してデータの抽出する方法を説明します。
経済統計の使い方では、統計データの入手法から分析法まで解説しています。
データフレームの一部を指定
データフレームは、変数名が最初の行にあり、列ごとにデータが格納されています。
行は、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:3 | 1,2 |
2: | 2,3,4,5 |
:3 | 0,1,2 |
-1 | 5 |
: | 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’]という方法もあります。データフレームなのに、一つだけ変数を指定するというやり方です。行列形式なのに、一つだけ指定するという例外的なやり方です。
- 【Python】Pythonの基本操作
- 経済学Q&A(試験編)
- 【経済統計】消費をみるために必要な月次指標ベスト3|消費総合指数、商業動態統計、家計調査
- 経済統計チャットボット マホナ
- 経済金融指標の見方 Q&A2