列の選択に基づいて、既存のデータフレームからビューまたはデータフレームを作成したいと思います。
たとえば、 2 つの列を除くすべての列を保持するdf2
データフレームからデータフレームを作成したいとしますdf1
。次の操作を実行しようとしましたが、うまくいきませんでした。
import numpy as np
import pandas as pd
# Create a dataframe with columns A,B,C and D
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
# Try to create a second dataframe df2 from df with all columns except 'B' and D
my_cols = set(df.columns)
my_cols.remove('B').remove('D')
# This returns an error ("unhashable type: set")
df2 = df[my_cols]
何が間違っているのでしょうか? おそらくもっと一般的に言えば、データフレームから任意の列セットを選択および除外するために、pandas にはどのようなメカニズムがあるのでしょうか?
ベストアンサー1
不要な列を削除するか、必要な列を選択することができます。
# Using DataFrame.drop
df.drop(df.columns[[1, 2]], axis=1, inplace=True)
# drop by Name
df1 = df1.drop(['B', 'C'], axis=1)
# Select the ones you want
df1 = df[['a','d']]