我正在为一个学生离散化我的系列。我确实需要该系列是float类型,并且我真的需要避免使用for循环。
如何将此系列从float转换为int?
以下是我当前失败的函数:
def discretize_series(s,count,normalized=True):
def discretize(value,bucket_size):
return value % bucket_size
if normalized:
maximum = 1.0
else:
minimum = np.min(s)
s = s[:] - minimum
maximum = np.max(s)
bucket_size = maximum / float(count)
这是导致函数失败的行:
s = int((s[:] - s[:] % bucket_size)/bucket_size)
int()引起了强制转换错误:我无法将pandas系列转换为int系列。
return s
如果我去掉 int(),这个函数就可以工作了,所以我要试着看能不能让它正常工作。
normalized==True
的情况下失败吗?如果是这种情况,您可能需要设置s=s/np.max(s)
。如果np.max(s)<0
,您仍然可能会遇到问题。这种情况可能发生吗? - Andras Deak -- Слава Україні