我在数据帧中有一列名为time的格式为19:46:23.12 我想像19:46:23那样提取它,如果小数点后的值大于5,则需要四舍五入小数点前的值。 我尝试过:
Df['time']=Df['time'].str[:8];
答案 0 :(得分:2)
可能您的数据框具有类型为时间的列。将值转换为日期时间,然后四舍五入为Series.dt.round
,最后由time
转换为时间:
from datetime import time
df = pd.DataFrame({'time':[time(19, 46, 23, 120000), time(19, 46, 23, 500000)]})
df['time1'] = pd.to_datetime(df['time'].astype(str)).dt.round('S').dt.time
print(df)
time time1
0 19:46:23.120000 19:46:23
1 19:46:23.500000 19:46:24
如果需要HH:MM:SS
格式的字符串:
df['time2'] = pd.to_datetime(df['time'].astype(str)).dt.round('S').dt.strftime('%H:%M:%S')