cphill
cphill

Reputation: 5924

Using DataFrame Index Dates for Date Column Creation

I am trying to reduce the code bloat in my project for the process of creating various date columns (weekday, business day, day index, week index) and I was wondering how I can take the index of my dataframe and build datetime attribute columns from the index.

I thought I could access the .index or index.values and then reference the datetime attributes like month, weekday, etc., but it doesn't appear that Index has those attributes. Would I need to convert the index values to a new list and then build the columns off of that?

Here is my code:

historicals = pd.read_csv("2018-2019_sessions.csv", index_col="date", na_values=0)
type(historicals)

// date formate = 2018-01-01, 2018-01-02, etc.

# Additional Date Fields
date_col = historicals.index
date_col.weekday

// AttributeError: 'Index' object has no attribute 'weekday'

Upvotes: 1

Views: 88

Answers (1)

Andy L.
Andy L.

Reputation: 25269

Your index is in string format. You historicals.index probably looks like this

print(historicals.index)

Index(['2018-01-01', '2018-01-02'], dtype='object')

You need to convert it to datetimeindex and get its weekday attribute and assign to new column

historicals['weekday'] = pd.to_datetime(historicals.index).weekday

Or

date_col = pd.to_datetime(historicals.index)
print(date_col.weekday)

Upvotes: 1

Related Questions