import numpy as np
import pandas as pd
x = np.linspace(-0.02, 0.02, 5)
print pd.Series([-0.02, 0.02, -0.01, 0.01, 0.02]).replace(x, np.arange(0, 5))
print pd.Series([-0.02, 0.02, -0.01, 0.01, 0.02]).replace([-0.02, -0.01, 0, 0.01, 0.02], [0, 1, 2, 3, 4])
结果是:
0 0.00
1 4.00
2 1.00
3 0.01
4 4.00
dtype: float64
0 0
1 4
2 1
3 3
4 4
dtype: float64
为什么替换函数不能在第一个打印语句中将 0.01 转换为 3?
请您参考如下方法:
我认为这是创建x 时的浮点错误。很难像这样比较 float 是否相等
import numpy as np
x = np.linspace(-0.02, 0.02, 5)
print x
# [-0.02 -0.01 0. 0.01 0.02]
0.01 in x
# False
print x[3]
# 0.0099999999999999985
print x[4]
# 0.02
