2016-01-08 13 views
34

私は4列のパンダのデータフレームを持っていると私はだけ列の3を持っている新しいデータフレームを作成します。この質問は、Extracting specific columns from a data frameに似ていますが、パンダはRではありません。次のコードは機能しません。エラーが発生し、それを行うためのパンデミックな方法ではありません。パンダ:新しいデータフレームにデータフレームから特定の選択された列を抽出

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 

パンダニックの方法は何ですか?

答えて

64

はこれを行う方法があり、それは実際にあなただけのオリジナルのデータフレームから希望の列を選択し、それらのための変数を作成しているここでR

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

に似ています。新しいデータフレームをすべて変更したい場合はSettingWithCopyWarningを避けるために.copy()を使用することをお勧めします。これはdropを使用して表現する

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

最後に、元のデータフレームの列の数に応じて、それはより簡潔であるかもしれない:

別の方法は、デフォルトではコピーを作成しますfilterを使用することです(デフォルトでコピーも作成されます)

new = old.drop('B', axis=1) 
関連する問題