2 回答
TA贡献1155条经验 获得超0个赞
我认为您可能忽略了组合偏移量别名。
四舍五入100L
应该在您的情况下给出正确的答案。100L
将使用 100 毫秒(或 0.1 秒)的仲裁进行舍入,这正是您在这种情况下所需要的。您正在使用1L
,这已经是数据框中的默认值。
df = pd.DataFrame({
'time' : ['2019-08-02 09:50:10.040','2019-08-02 09:50:10.080','2019-08-02 09:50:10.170','2019-08-02 09:50:10.180'],
})
df['time'] = pd.to_datetime(df['time'])
df['time'] = df.time.dt.round('100L')
输出是:
0 2019-08-02 09:50:10.000
1 2019-08-02 09:50:10.100
2 2019-08-02 09:50:10.200
3 2019-08-02 09:50:10.200
额外的零不能被截断,但在计算方面,您将获得预期的结果。
TA贡献1895条经验 获得超3个赞
一种解决方案是:
df["time"] = df.time.dt.round("100ms")
输出
time
0 2019-08-02 09:50:10.000
1 2019-08-02 09:50:10.100
2 2019-08-02 09:50:10.200
3 2019-08-02 09:50:10.200
以下是所有有效字符串:
'A': 'A-DEC',
'AS': 'AS-JAN',
'BA': 'BA-DEC',
'BAS': 'BAS-JAN',
'BY': 'BA-DEC',
'BYS': 'BAS-JAN',
'Min': 'T',
'Q': 'Q-DEC',
'W': 'W-SUN',
'Y': 'A-DEC',
'YS': 'AS-JAN',
'min': 'T',
'ms': 'L',
'ns': 'N',
'us': 'U',
添加回答
举报