Pandas set_index doesn't drop the column
11,454
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'])
Related videos on Youtube
Author by
Michael
Updated on June 15, 2022Comments
-
Michael almost 2 years
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
-
smci almost 4 years
.set_index()
wants the actual column name, so'date'
, notdfname["date"]
-
-
Michael about 6 yearsawesome! just the column name did it! THANKS!
-
Okroshiashvili over 3 years@jezrael, I encountered this today. Never noticed yet. If I use
df.set_index(df["col_1"])
this does not drop the column given that drop parameter is set to True by default. If I did the followingdf.set_index("col_1")
then it drops the columns "col_1". What's that behavior?