John
John

Reputation: 515

How to efficiently add seconds place to date time

I have a pandas data frame full of 1 second data of the form "10/23/2017 6:00". Each time appears 60 times in the file, and I'd like to know if there is an easy/efficient/smart way to add seconds to each row such that I get "10/23/2017 6:00:00, 10/23/2017 6:00:01 ..."

Upvotes: 1

Views: 106

Answers (1)

jezrael
jezrael

Reputation: 863741

First convert column to_datetime and then add seconds created by cumcount and to_timedelta:

df['time'] = pd.to_datetime(df['time'])
df['time'] += pd.to_timedelta(df.groupby('time').cumcount(), unit='s')

Sample:

df = pd.DataFrame({'time':['10/23/2017 6:00'] * 60}) 

df['time'] = pd.to_datetime(df['time'])
df['time'] += pd.to_timedelta(df.groupby('time').cumcount(), unit='s')
print (df.head(10))
                 time
0 2017-10-23 06:00:00
1 2017-10-23 06:00:01
2 2017-10-23 06:00:02
3 2017-10-23 06:00:03
4 2017-10-23 06:00:04
5 2017-10-23 06:00:05
6 2017-10-23 06:00:06
7 2017-10-23 06:00:07
8 2017-10-23 06:00:08
9 2017-10-23 06:00:09

Upvotes: 1

Related Questions