我试图在python中循环整数.我查看了内置的round()函数,但它看起来像是浮点数.
我的目标是将整数舍入到10的最接近的倍数.即:5-> 10,4-> 0,95-> 100等.
5和更高应该向上舍入,4和更低应该向下舍入.
这是我的代码:
def round_int(x):
last_dig = int(str(x)[-1])
if last_dig >= 5:
x += 10
return (x/10) * 10
Run Code Online (Sandbox Code Playgroud)
这是实现我想要实现的目标的最佳方式吗?是否有内置功能可以做到这一点?另外,如果这是最好的方法,那么我在测试中遗漏的代码有什么问题吗?
我有一个df通常的时间戳作为索引:
2011-04-01 09:30:00
2011-04-01 09:30:10
...
2011-04-01 09:36:20
...
2011-04-01 09:37:30
Run Code Online (Sandbox Code Playgroud)
如何使用相同的时间戳创建此数据框的列,但舍入到最接近的第5分钟间隔?像这样:
index new_col
2011-04-01 09:30:00 2011-04-01 09:35:00
2011-04-01 09:30:10 2011-04-01 09:35:00
2011-04-01 09:36:20 2011-04-01 09:40:00
2011-04-01 09:37:30 2011-04-01 09:40:00
Run Code Online (Sandbox Code Playgroud) 在Python 2.7.2中,我获得了epoch以来的秒数:
sec_since_epoch = (date_obj - datetime(1970, 1, 1, 0, 0)).total_seconds()
现在我想将这些秒数舍入到最近的一天,例如:
datetime.fromtimestamp(sec_since_epoch)
对应于 datetime(2013, 12, 14, 5, 0, 0)
我想要新的时间戳对应 datetime(2013, 12, 14, 0, 0, 0)
我知道这种丑陋的做法,但是有一种优雅的方式吗?