0

如何估计熊猫时间序列中使用的数字的小数位数?

例如对于

x=[1.01,1.01,1.03]

我想要

in[0]: estimate_decimal_places(x)
out[0] : 2

例如对于

x=[1.1,1.5,2.0]

我想要

in[0]: estimate_decimal_places(x)
out[0] : 1
4

2 回答 2

2
def estimate_decimal_places(num):
return len(str(num).split(".")[1])    

x=[1.1,1.01,1.001]

for num in x:
    print estimate_decimal_places(num)

1
2
3
于 2013-09-17T14:46:16.167 回答
1

真的很难看,但它有效,并且应该涵盖马克指出的极端情况

def decimal_places(num):
    return max(len(('%.15f'%num).strip("0").split('.')[1]),0)

编辑:

这无论如何都会失败,例如decimal_places(90.34). 在我的机器上打印时它被转换为 90.340000000000003,然后这反过来又给出了错误的结果。

只要您不过度推动它,它就可以正常工作,12例如接受无法预测数字以上的小数位,替换1512以上

于 2013-09-17T15:24:15.447 回答