1

我正在尝试使用 来自 functools的singledispatch编写一个通用函数。我希望函数根据传递参数的类型表现出不同的行为——在这种情况下,它将是一列数据框,可以是不同的 dtype:int64、float64、object、bool 等。

我试图通过实验做一些基本的事情:

@singledispatch
def sprint(data):
    print('default success')

@sprint.register('float64')
def _(data):
    print('float success')

@sprint.register('int64')
def _(data):
    print('int success')

# test
from sklearn.datasets import load_iris
data_i = load_iris()
df_iris = pd.DataFrame(data_i.data, columns=data_i.feature_names)

sprint(df_iris['sepal length (cm)'])

但显然我得到一个错误,因为 python 不查看列的 dtype 属性。

有没有办法解决它?

我会很感激帮助。

4

0 回答 0