【Python】Pandasのメソッドの紹介~データの抽出~

Pythonの言語は、今ではEXCELでも利用できるようになっています。

EXCELでのPython利用は、基本的にはデータ分析の分野で利用することになるでしょう。

Pythonには、データ分析に役立つ「Pandas」というライブラリがあります。

これまでにも概要をまとめた記事(リンク)がありますが、「データフレーム」という形で「データ」を扱えるのが特徴です。

今回は「Pandas」の中でも、データ抽出系のメソッドについて、まとめようと思います。

スポンサーリンク

データの抽出

以下は、データフレームからデータを抽出する際に利用できる「インデクサ」になります。

インデクサは、インデクシング(索引付け)をするために必要なオブジェクトのことです。
loc[]
iloc[]

いずれも、行や列のラベルを使用してデータを抽出(選択)するものですが、抽出時の基準とするものが違います。

インデクサ 抽出時に基準とするもの
loc[] ラベルベースで機能し、抽出にはインデックスラベルや列名を使用します。
iloc[] 行や列の整数位置(インデックス)ベースで機能し、抽出には行番号や列番号を使用します。

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’, ‘山田’],
‘年齢’: [25, 30, 22, 25],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’, ‘大阪’]

}

# インデックスの付与
df = pd.DataFrame(data, index=[‘A’, ‘B’, ‘C’, ‘D’])

# 行と列の選択(loc[])
select_loc = df.loc[‘C’, ‘出身’]
print(“「インデックス:C」の「出身」:\n”, select_loc)
print(“”)

multiselect_loc = df.loc[[‘B’, ‘C’],[‘名前’, ‘出身’]]
print(“「インデックス:BとC」の「名前と出身」:\n”, multiselect_loc)
print(“”)

# 行と列の選択(iloc[])
select_iloc = df.iloc[0, 0]
print(“「1列目」かつ「1行目」の値:\n”, select_iloc)
print(“”)

multiselect_iloc = df.iloc[2:4, 0:2]
print(“「3列目から5列目」の「1行目から2行目」の値:\n”, multiselect_iloc)
# (補足)存在しない列・行は無視されます。

実行結果:

  「インデックス:C」の「出身」:
静岡

「インデックス:BとC」の「名前と出身」:
名前 出身
B 鈴木 神奈川
C 佐藤 静岡

「1列目」かつ「1行目」の値:
田中

「3列目から5列目」の「1行目から2行目」の値:
名前 年齢
C 佐藤 22
D 山田 25

スポンサーリンク

列・行全体の抽出

列・行全体の選択のベースは、変数に指定したカラムを代入することにあります。

いくつかの例を以下にまとめます。

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’, ‘山田’],
‘年齢’: [25, 30, 22, 25],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’, ‘大阪’]

}

df = pd.DataFrame(data)

# 列の抽出
birthplace = df[‘出身’]
print(“「出身」列:\n”, birthplace)
print(“”)

# 複数列の選択
multicolumn_name_bp = df[[‘名前’, ‘出身’]]
print(“名前と出身の列:\n”, multicolumn_name_bp)
print(“”)

# 行の抽出
member1 = df.loc[0]
print(“1行目のメンバー:\n”, member1)

実行結果:

  「出身」列:
0 東京
1 神奈川
2 静岡
3 大阪
Name: 出身, dtype: object

名前と出身の列:
名前 出身
0 田中 東京
1 鈴木 神奈川
2 佐藤 静岡
3 山田 大阪

1行目のメンバー:
名前 田中
年齢 25
出身 東京
Name: 0, dtype: object

フィルタリングして抽出

抽出時のフィルタリングは、データを抽出する時に、条件を加えることで対応できます。

以下に、一例を記載します。

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’, ‘山田’],
‘年齢’: [25, 30, 22, 25],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’, ‘大阪’]

}

df = pd.DataFrame(data)

# 条件による行の選択
over25 = df[df[‘年齢’] > 25]
print(“年齢が25際を超える人:\n”, over25)

実行結果:

年齢が25際を超える人:
名前 年齢 出身
1 鈴木 30 神奈川

また、以下のようにAND条件も利用可能です。

コードサンプル:

data = {

‘A’: [1, 2, 3, 4],
‘B’: [5, 6, 7, 8]

}

df = pd.DataFrame(data)

result = df.query(‘A > 1 & B < 8’)
# result = df[(df[‘A’] > 1) & (df[‘B’] < 8)] と同等のメソッドです。

print(result)

実行結果:

  A B
1 2 6
2 3 7

まとめ

今回は、Pythonで扱えるライブラリの「Pandas」のメソッドについてまとめてみました。

他にも多くのメソッドが存在するため、複数の記事に渡って解説しています。

他の記事も、ぜひ参考にしてみて下さい。

広告