選択した特定の列をコピーとして新しい DataFrame に抽出する 質問する

選択した特定の列をコピーとして新しい DataFrame に抽出する 質問する

4 列の pandas DataFrame があり、そのうち 3 列のみを持つ新しいDataFrameを作成したいと考えています。この質問は次の質問に似ています:データフレームから特定の列を抽出するただし、Pandas では R ではありません。次のコードは機能せず、エラーが発生し、Pandas で実行する方法ではありません。

import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) 
# raises TypeError: data argument can't be an iterator 

パンダのやり方は何ですか?

ベストアンサー1

これを行う方法はあり、それは実際にはRに似ています

new = old[['A', 'C', 'D']].copy()

ここでは、元のデータ フレームから必要な列を選択し、それらの変数を作成しています。新しいデータ フレームを変更する場合は、 を.copy()回避するために を使用することをお勧めしますSettingWithCopyWarning

別の方法としてはfilter、デフォルトでコピーを作成する を使用することです。

new = old.filter(['A','B','D'], axis=1)

最後に、元のデータフレームの列数によっては、 を使用してこれを表現する方が簡潔になる場合がありますdrop(これにより、デフォルトでコピーも作成されます)。

new = old.drop('B', axis=1)

おすすめ記事