Pandas Dataframe で複数の列を選択する
Manav Narula
2023年1月30日
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
著者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn