Pandas DataFrame のインデックスによるカラムのドロップ
DataFrame は非常に大きく、何百もの行や列を含むこともあります。複数の列を削除するなど、DataFrame の基本的なメンテナンス操作に精通している必要があります。dataframe.drop()
メソッドを使用すると、axis
の指定に応じて、行の場合は 0、列の場合は 1 というように、DataFrame から列や行を削除することができます。このメソッドは、いくつかのラベルに基づいて削除する要素を特定します。例えば、以下の DataFrame から列 'a'
を削除します。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print(df)
df.drop(["a"], axis=1, inplace=True)
print(df)
出力:
a b c d
0 10 6 7 8
1 1 9 12 14
2 5 8 10 6
b c d
0 6 7 8
1 9 12 14
2 8 10 6
ドロップ関数で inplace
パラメータを使用していることに注意してください。inplace
パラメータに True
を指定すると、元の DataFrame から列が削除されます。
この例では、カラム 'a'
を削除しましたが、そのラベル名を dataframe.drop()
関数に渡す必要があります。大規模なデータセットを扱う際には、多くのカラムを一度に処理し、カラム名の代わりにカラムインデックスを使用する必要があります。
これを実現するには、dataframe.columns()
メソッドを使用します。このメソッドは DataFrame のすべての列を返し、必要な列のラベルをインデックスを用いて dataframe.drop()
関数に渡します。以下のコードスニペットに、この方法を説明します。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df.drop(df.columns[[1, 2]], axis=1, inplace=True)
print(df)
出力:
a d
0 10 8
1 1 14
2 5 6
インデックスが 1
または 2
のカラムを削除します。
また、dataframe.drop()
関数の中で columns
パラメータを指定するだけで、axis
パラメータの使用を避けることができます。例:
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df.drop(columns=df.columns[[1, 2]], inplace=True)
print(df)
出力:
a d
0 10 8
1 1 14
2 5 6
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