Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
896 views
in Technique[技术] by (71.8m points)

python - Datetime milliseconds to seconds in Pandas

Have a datetime column in pandas dataframe with values like these:

time
2018-04-11 22:18:30.122
2018-04-11 23:00:21.399

I'm wondering how can I round these values, get rid of milliseconds and represent only date, hour, minutes and 00 as seconds like this:

time
2018-04-11 22:18:00
2018-04-11 23:00:00
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use floor with T for minutes for set 0 seconds:

#if necessary
#df['time'] = pd.to_datetime(df['time'])
df['time'] = df['time'].dt.floor('T')
#alternative solution
#df['time'] = df['time'].dt.floor('Min')

print (df)
                 time
0 2018-04-11 22:18:00
1 2018-04-11 23:00:00

I want round values time after 30sec is changed to next one:

df['time'] = df['time'].dt.round('T')
print (df)
                 time
0 2018-04-11 22:19:00
1 2018-04-11 23:00:00

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...