3

I am trying to drop a column from a pandas dataframe as follows:

df = pd.read_csv('Caravan_Dataset.csv')
X = df.drop('Purchase',axis=1)
y = df['Purchase'] 

but it does not work. I also tried the following one:

df = pd.read_csv('Caravan_Dataset.csv')
X = df.drop('Purchase',axis=1,inplace=True)
y = df['Purchase']

but it does not work neither. ıt keeps giving an error like Purchase is still on the columns. Any idea about how can I do it?

Tugba Delice
  • 31
  • 1
  • 2
  • Can you clarify what your desired outcome is? If you drop the Purchase column in the second line, then in the third line (y = df...) it won't be available to assign. Are you aiming to get that error? – tania Jan 10 '21 at 19:56

2 Answers2

2

When inplace = True , the data is modified in place, which means it will return nothing and the dataframe is now updated. When inplace=False, you will need to assign it to something new.

Change your code from:

X = df.drop('Purchase',axis=1,inplace=True)

To this:

df.drop('Purchase',axis=1,inplace=True)

Or, alternatively use inplace=False (which is the default) and returns a copy of the object, and use:

X = df.drop('Purchase',axis=1)
sophocles
  • 13,593
  • 3
  • 14
  • 33
0

You have to assign it to df like df = df.drop('column_name',asix=1)

Franciszek Job
  • 388
  • 2
  • 9