提取到两个秒值

时间:2019-02-28 07:41:03

标签: python python-3.x pandas

我在数据帧中有一列名为time的格式为19:46:23.12 我想像19:46:23那样提取它,如果小数点后的值大于5,则需要四舍五入小数点前的值。 我尝试过:

Df['time']=Df['time'].str[:8];

1 个答案:

答案 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')