Я пытаюсь написать обобщенную c функцию, используя singledispatch из functools . Я хочу, чтобы функция вела себя по-разному в зависимости от типа передаваемого аргумента - в этом случае это будет столбец фрейма данных, который может иметь различный тип d: int64, float64, object, bool et c.
Я пытался сделать что-то на основе c экспериментально:
@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 столбца.
Есть ли способ обойти это?
Буду благодарен за помощь.