我有以下数据框架:Dataframe
print (df)
time
0 00:00:04.4052727
1 00:00:06.5798
,我的目标是将微秒四舍五入到2位数字,并删除其他数字,因此只有2位数字。
所有列应该看起来像第一行:
print (df)
time
0 00:00:04.405
1 00:00:06.580
将值转换为HH:MM:SS.fffff
格式后,可以删除最后3位数字(000
):
df['time'] = pd.to_datetime(df['time'])
df['time'] = df['time'].dt.round('100L').dt.strftime('%H:%M:%S.%f').str[:-3]
print (df)
time
0 00:00:04.400
1 00:00:06.600
另一个想法是1毫秒:
df['time'] = df['time'].dt.round('1ms')
print (df)
time
0 2022-12-12 00:00:04.405
1 2022-12-12 00:00:06.580
df['time'] = df['time'].dt.round('1ms').dt.strftime('%H:%M:%S.%f').str[:-3]
print (df)
time
0 00:00:04.405
1 00:00:06.580
如果只需要截断值,使用Series.dt.floor
:
df['time'] = df['time'].dt.floor('1ms')
print (df)
time
0 2022-12-12 00:00:04.405
1 2022-12-12 00:00:06.579
df['time'] = df['time'].dt.floor('1ms').dt.strftime('%H:%M:%S.%f').str[:-3]
print (df)
time
0 00:00:04.405
1 00:00:06.579