前記事からの続きです。
前の記事はこちら
利用するデータは説明のため以下のデータを利用します。
今回AMZNの値はすべて数字を入れています。
import pandas as pd
st = pd.DataFrame({'GOOG':[158.56,157.21,167.31,168.42,167.19,165.29,168.83],
'AMZN':[186.61,181.96,184.76,185.13,186.33,187.97,188.07]
})
行と列の値の関係が見やすいように、df.head(7)の実行結果を表示させます。
実行結果
GOOG AMZN
0 158.56 186.61
1 157.21 181.96
2 167.31 184.76
3 168.42 185.13
4 167.19 186.33
5 165.29 187.97
6 168.83 188.07
データの選択と抽出
1. df['column_name']
指定した列のデータを取得します。
print(df['AMZN'])
実行結果
0 186.61
1 181.96
2 184.76
3 185.13
4 186.33
5 187.97
6 188.07
Name: AMZN, dtype: float64
AMAN列のデータが抽出されて表示されます。
2. df.loc[]
ラベル(行名、列名)でデータを選択・抽出します。
# 特定の行と列のデータ
print(df.loc[0,'GOOG'])
実行結果
158.56
0番行目、'GOOG'列の158.56が取得できました。
列の範囲をキーの値を利用して指定ができます。
# 特定の行と列のデータ
print(df.loc[0,'GOOG':'AMZN'])
実行結果
GOOG 158.56
AMZN 186.61
Name: 0, dtype: float64
0番行目のGOOGとAMZNの列の値が取得できました。
もちろん行数の範囲を指定できます。
# 特定の行と列のデータ(行の範囲指定)
print(df.loc[0:2,'GOOG'])
実行結果
0 158.56
1 157.21
2 167.31
Name: GOOG, dtype: float64
loc()はキーの値(カラム名)を指定して値を取得できます。
行についてもキーの値を指定することができます。
※今回行に関して、キーの値を設定がなかったため、Indexの
値を指定しています。
3. df.iloc[]
インデックス(数値)でデータを選択・抽出します。
# 特定の行と列のデータ
print(df.iloc[0, 1]) # 1行目、2列目
実行結果
186.61
0行番目の1番列目の186.61が取得できました。
# 行の範囲を指定
print(df.iloc[1:4])
実行結果
GOOG AMZN
1 157.21 181.96
2 167.31 184.76
3 168.42 185.13
1番行目から4番目業手前の3番行目までの範囲が取得できました。
loc[]とiloc[]の違い
loc[] : キーの値を指定することができます。
loc[] : インデックスの値の指定になります。(キーの値は使えません)