HOWTO · Pandas
Pandas Dataframe で複数の列を選択する
このチュートリアルでは、getitem 構文([])、iloc()、および loc()を使用して、DataFrame から複数の列を選択する方法を示します。
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 から列 a と c を選択する方法を説明します。
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