1. ホーム
  2. パイソン

[解決済み】選択した特定の列を新しいDataFrameにコピーとして抽出する。

2022-03-30 14:20:20

質問

4つの列を持つpandas DataFrameがあります。 新しい データフレームは のみ は3つのカラムを持っています。 この質問は似ています。 データフレームから特定の列を抽出する しかし、Rではなくpandasのために、以下のコードは動作せず、エラーを発生させ、確かにpandasnicな方法ではありません。

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 

パンダスニックなやり方とは?

どのように解決するのですか?

という方法があり、実は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)