'how to replace seconds to zero in pandas

I have following dataframe in pandas

  code     time
  1        003002
  1        053003
  1        060002
  1        073001
  1        073003

I want to generate following dataframe in pandas

  code     time        new_time
  1        003002      00:30:00
  1        053003      05:30:00
  1        060002      06:00:00
  1        073001      07:30:00 
  1        073003      07:30:00

I am doing it with following code

df['new_time'] = pd.to_datetime(df['time'] ,format='%H%M%S').dt.time

How can I do it in pandas?



Solution 1:[1]

Use Series.dt.floor:

df['time'] = pd.to_datetime(df['time'], format='%H%M%S').dt.floor('T').dt.time

Or remove last 2 values by indexing, then change format to %H%M:

df['time'] = pd.to_datetime(df['time'].str[:-2], format='%H%M').dt.time

print (df)
  code      time
0    1  00:30:00
1    1  05:30:00
2    1  06:00:00
3    1  07:30:00
4    1  07:30:00

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 jezrael