Как написать обобщенную c функцию, которая действует по-разному в зависимости от переданного pandas столбца dtype - PullRequest
1 голос
/ 16 марта 2020

Я пытаюсь написать обобщенную 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 столбца.

Есть ли способ обойти это?

Буду благодарен за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...