Python Pandas Drop Dataframe

24,442

Solution 1

If I understand right to delete column (single) you should use:

df = pd.DataFrame.drop('Meter ID', axis=1)

For more than 1 column:

df = pd.DataFrame.drop(['Meter ID', 'abc'], axis=1)

Difference is in [] brackets.

To delete the whole df you can use either (as mentioned already):

del df

or

df = None

Solution 2

After reading your question , what i understand is you wanted to drop column ['Meter ID'] available in your df = pd.read_csv('C:\LoadProfiles\CSV\WillBaySchl 2013_2014 KW.csv') pandas dataframe . I am assuming that you have column name ['Meter ID'] like these in your dataframe and also as header in your csv file .

>>> df.dtypes
Meter ID           int64
someothercolumn    int64
dtype: object

for that you can simply use these code ,

del df['Meter ID']

Now if you wanted to delete overall dataframe you can simply use these code,

df=None

Solution 3

To drop a column from dataframe,

df = df.drop('Meter ID', axis=1)

Drop more than one columns at a time,

df = df.drop(['Meter ID', 'SomethingElse'], axis=1)

For more pandas.DataFrame.drop

Share:
24,442
bbartling
Author by

bbartling

ben.bartling&gmail;com

Updated on July 06, 2020

Comments

  • bbartling
    bbartling almost 4 years

    How do I delete a column from a DataFrame? I know this data is not reproducible as I have a CSV file and I am trying to build a pandas data frame to do some wrangling.

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    df = pd.read_csv('C:\LoadProfiles\CSV\WillBaySchl 2013_2014 KW.csv')
    
    print(df)
    

    This will return the head/tail and:[34944 rows x 3 columns]

    pos0 = 0
    pos1 = 1
    pos2 = 2
    
    colname = df.columns[pos0]
    print(colname)
    

    This will return: Meter ID (I want to drop this column/dataframe)

    colname = df.columns[pos1]
    print(colname)
    

    This will return: Date / Time (I want this to be the pd data frame index)

    colname = df.columns[pos2]
    print(colname)
    

    This will return: KW(ch: 1 set:0) (This is the data that I want to rename "kW" and do some wrangling...)

    If I try this code below:

    df = pd.DataFrame.drop(['Meter ID'], axis=1)
    
    print(df)
    

    Python will return the error:TypeError: drop() missing 1 required positional argument: 'labels'

    If I try this code below:

    df = pd.DataFrame.drop(columns=['Meter ID'])
    print(df)
    

    Python will return the error: TypeError: drop() got an unexpected keyword argument 'columns'

    Any help is greatly appreciated...