几天前有人向我指出了 pandas.algos 中的一个函数(请参阅https://stackoverflow.com/a/17705498/2565842),我找不到任何关于此的文档。当我在http://pandas.pydata.org/pandas-docs/dev/上的 pandas 搜索框中键入“algos”或“is_monotonic_float64”(有问题的函数)时,我没有得到任何结果。同样,当我问谷歌时,我也没有得到任何有用的信息。
我寻找文档的原因是我在函数接受的类型方面遇到了问题。我写了两个这样的函数:
def is_monotonic(time_series, cols):
return time_series.loc[:,cols].apply(lambda x:
pandas.algos.is_monotonic_float64(x)[0] if is_type(x, float) else "non_numeric data",
axis=1)
def is_type(series, t):
return series.apply(lambda x: type(x) == t).all()
我在以下数据帧上运行它
0 1 2 3 4
A t t t t t
B 0.2583974 0.3311106 0.933452 NaN 0.1908287
C 0.4400121 0.9548238 0.2953693 0.7027355 0.6149148
D 0.4049013 0.5930965 0.7073495 0.3801416 0.4931772
但随后得到错误
ValueError: ("Buffer dtype mismatch, expected 'float64_t' but got Python object"
当我检查数据框中的类型时,第一行是字符串,其他类型为“float”。我需要在这里对 numpy.float64 进行某种类型的转换吗?