Michael
Michael

Reputation: 267

Pandas set_index doesn't drop the column

I run the following code function on my dataframe:

del dfname["Unnamed: 0"]
dfname["date"] = pd.to_datetime(dfname["date"])
dfname.set_index(dfname["date"], drop=True, inplace=True)

But the column does not drop (I know that the default is drop=True)

The output dataframe looks like this. I'm using Python 3.6

Upvotes: 23

Views: 20852

Answers (1)

jezrael
jezrael

Reputation: 863166

Change column of DataFrame to column name, also drop = True is default, so is possible remove it:

dfname.set_index(dfname["date"], drop = True, inplace = True)

to:

dfname.set_index("date", inplace = True)

Sample:

rng = pd.date_range('2017-04-03', periods=10)
dfname = pd.DataFrame({'date': rng, 'a': range(10)})  

dfname.set_index("date", inplace = True)
print (dfname)
            a
date         
2017-04-03  0
2017-04-04  1
2017-04-05  2
2017-04-06  3
2017-04-07  4
2017-04-08  5
2017-04-09  6
2017-04-10  7
2017-04-11  8
2017-04-12  9

EDIT:

If input is file, use read_csv with parameters index_col and parse_dates for DatetimeIndex:

df = pd.read_csv(file, index_col=['date'], parse_dates=['date'])

Upvotes: 43

Related Questions