pandasは、Pythonでデータの取り回しを効率化するためのライブラリです。
pandasの中でもpopメソッドは、DataFrameから列を取り出すために使用されます。
本記事では、pandasのpopメソッドについて解説します。
こんな人におすすめ
・pandasのpopメソッドについて知りたい人
・DataFrameから列を削除したいが、どのメソッドを使えばいいかわからない人
・複数の列を一度に削除したい人
・DataFrameの操作に関する基本的な知識を持っているが、popメソッドの使い方や注意点について詳しく知りたい人
・データ分析や機械学習の分野でpandasを使う予定の人
・pandasのメソッドについて簡潔にまとめた記事を探している人
主なライブラリ
pandas
本ページで使用するライブラリをインポートするときは以下のコードを使用します。
import pandas as pd
pandasのpopメソッドとは?
popメソッドは、DataFrameの列を取り出し、DataFrameから削除するメソッドです。pandasには、列を取り出すための他のメソッド(たとえば、locやiloc)もありますが、popメソッドは取り出した列をDataFrameから削除できるという利点があります。
popメソッドの使い方と注意点
popメソッドを使うには、DataFrameオブジェクトのpopメソッドに取り出したい列のラベルを引数として渡します。例えば、以下のようなDataFrameがあった場合、”column1″という列を取り出して削除するには、以下のようにします。
df = pd.DataFrame({'column1': [1, 2, 3], 'column2': [4, 5, 6]}) print(df) # column1 column2 # 0 1 4 # 1 2 5 # 2 3 6 column1 = df.pop('column1') print(df) # column2 # 0 4 # 1 5 # 2 6 print(column1) # 0 1 # 1 2 # 2 3 # Name: column1, dtype: int64
注意点としては、popメソッドを使うと、元のDataFrameから列が削除されるため、取り出したい列の値を使いたい場合は、別の変数に格納しておく必要があります。
また、popメソッドは、DataFrameの列の取り出しと同時に削除するため、一度に複数の列を取り出すことはできません。そのため、複数の列を一度に取り出したい場合は、locやilocを使って取り出した後、dropメソッドを使って削除する必要があります。
DataFrameから列を取り出す方法としてのpop
popを使ってDataFrameから列を取り出すには以下のコードを実行します。このコードではDataFrameからcolumn1という列を取り出しています。
df = pd.DataFrame({'column1': [1, 2, 3], 'column2': [4, 5, 6]}) column1 = df.pop('column1')
また、DataFrameから列を取り出す方法は、popメソッド以外にもあります。たとえば、locメソッドを使って、以下のように取り出すことができます。
column1 = df.loc[:, 'column1']
popを使ったDataFrameの列の削除方法
popメソッドを使ってDataFrameから列を削除するには、以下のようにします。
df = pd.DataFrame({'column1': [1, 2, 3], 'column2': [4, 5, 6]}) # column1 column2 # 0 1 4 # 1 2 5 # 2 3 6 df.pop('column1') print(df) # column2 # 0 4 # 1 5 # 2 6
popメソッドは、取り出した列を削除するため、元のDataFrameに影響を与えます。
複数の列を一度に削除する方法
pandasのdropメソッドは、DataFrameから指定された列を取り出して、同時にDataFrameから削除することができます。このメソッドは非常に便利であり、特に複数の列を一度に削除することができます。
複数の列を一度に削除する方法は、dropメソッド呼び出すことで実現できます。
例えば、以下のように、”col1″、”col2″、”col3″の3つの列を一度に削除することができます。
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [1, 2, 3], 'col4': [4, 5, 6]}) # col1 col2 col3 col4 # 0 1 4 1 4 # 1 2 5 2 5 # 2 3 6 3 6 df = df.drop(columns=['col1', 'col2', 'col3']) # col4 # 0 4 # 1 5 # 2 6
これは、3つの列を一度に削除することができますが、列の数が多くなると、列名を一つ一つ書くのが面倒になることがあります。その場合には、popメソッドを使うことができます。以下は、popメソッドを使って、”col1″、”col2″、”col3″の3つの列を一度に削除する例です。
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [1, 2, 3], 'col4': [4, 5, 6]}) df.pop('col1') df.pop('col2') df.pop('col3') print(df) # col4 # 0 4 # 1 5 # 2 6
このように、popメソッドを複数回呼び出すことで、一度に複数の列を削除することができます。
popによる元のデータの変更に注意
popメソッドを使うと、DataFrameから列を削除することができます。ただし、popメソッドによって元のデータが変更されるため、注意が必要です。例えば、以下のようなDataFrameがあったとします。
df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # A B C # 0 1 4 7 # 1 2 5 8 # 2 3 6 9
このDataFrameから、A列を削除する場合、popメソッドを使って以下のように書くことができます。
A = df.pop('A') print(df) # B C # 0 4 7 # 1 5 8 # 2 6 9
この場合、A列がDataFrameから削除され、A変数には削除したA列のデータが格納されます。しかし、この操作によって元のデータであるdf自体も変更されます。つまり、dfにはA列が含まれていなくなります。
このように、popメソッドを使ってDataFrameから列を削除する場合は、元のデータが変更されるため注意が必要です。特に、元のデータを保持したい場合には、別のDataFrameやSeriesにコピーしてから操作を行うことが望ましいです。
以上が、popによる元のデータの変更についての注意点です。popメソッドを使う際には、この点に留意して操作することが重要です。
まとめ
今回は、pandasのpopメソッドについて詳しく解説してきました。
まずは、popメソッドの使い方と注意点を確認しました。popメソッドは、指定した列を削除してその列を取得することができます。popを使うことで、列の取得と同時にDataFrameからの削除することが可能です。
表現を変えると、popメソッドによって元のデータが変更されるため、注意が必要です。
また、DataFrameから列を取り出す方法としてもpopメソッドを利用することができます。この場合は、元のDataFrameに影響を与えることなく指定した列を取得することができます。
さらに、複数の列を一度にpopする方法についても紹介しました。複数の列を一度に取得して削除する場合は、辞書型の戻り値が得られます。
以上が、pandasのpopメソッドについての解説となります。popメソッドをうまく使いこなして、データ分析や加工作業をより効率的に行っていきましょう。