取整并去掉3位数字的Python Dataframe



我有以下数据框架: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

最新更新