Pandas Dataframe で複数の列を選択する

  1. 複数の列を選択するための __getitem__ 構文 ([]) の使用
  2. iloc() メソッドと loc() メソッドを使った Pandas の複数列の選択

Pandas の DataFrame から複数列のデータを抽出する際に問題に直面することがありますが、これは主に DataFrame を 2 次元配列のように扱うためです。DataFrame から複数の列を選択するには、getitem 構文([])に列名リストを渡してインデックスを作成する基本的な方法と、Pandas が提供する iloc() メソッドや loc() メソッドを使用します。このチュートリアルでは、以下の DataFrame から複数の列を選択します。

DataFrame の例:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df)

出力:

          a         b         c         d
0  0.255086  0.282203  0.342223  0.263599
1  0.744271  0.591687  0.861554  0.871859
2  0.420066  0.713664  0.770193  0.207427
3  0.014447  0.352515  0.535801  0.119759

複数の列を選択するための __getitem__ 構文 ([]) の使用

抽出する列の名前をリストに格納して [] に渡すことで、DataFrame から複数の列を選択することができます。以下のコードでは、先ほど表示された DataFrame から列 ac を選択する方法を説明します。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df[['a','c']])

出力:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

iloc() メソッドと loc() メソッドを使った Pandas の複数列の選択

複数の列を選択するには、iloc() メソッドと loc() メソッドを用いることもできます。

列のインデックスを用いてそれらを抽出したい場合は、以下の例のように iloc() を用いることができます。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])
print(df.iloc[:,[0,2]])

出力:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

同様に、以下のように列の名前を指定して選択したい場合にも loc() を用いることができます。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])

print(df.loc[:,['a','c']])

出力:

          a         c
0  0.255086  0.342223
1  0.744271  0.861554
2  0.420066  0.770193
3  0.014447  0.535801

関連記事 - Pandas DataFrame

  • Python 辞書を Pandas DataFrame に変換する方法
  • Pandas で JSON ファイルを読み込む