Создание оранжевой таблицы из массива numpy

Я пытаюсь создать таблицу Orange вручную, и у меня возникают некоторые проблемы.

Мой код:

new_domain = Domain([
    ContinuousVariable("NAME"),
    ContinuousVariable("AGE"),
    DiscreteVariable("BLOOD TYPE", list(["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"]))
    ])

data = np.array([
    ["Joe", "25", "B-"],
    ["Marc", "30", "AB+"],
    ["Martin", "28", "O-"]
    ], dtype=object)


orangeTable = Table.from_numpy(new_domain, X=data)

Однако я получаю эту ошибку:

ValueError: could not convert string to float: 'Joe'

Я не понимаю, почему он пытается это преобразование, что не так? Я только начинаю, так что не все ясно на данный момент...


person VincHawthorne    schedule 22.07.2020    source источник


Ответы (1)


Сообщение об ошибке говорит вам все, что вам нужно знать:

ValueError: не удалось преобразовать строку в число с плавающей запятой: «Джо»

Проблема в том, что массивы numpy могут только содержать внутри себя значения с плавающей запятой (числовые). Здесь вы пытаетесь включить нечисловые (строковые) значения в свой массив.

Если вы хотите создать матричный объект, подобный тому, который у вас есть выше, который включает строковые типы данных и числа, вам нужно вместо этого создать фрейм данных Pandas.

person Ethan    schedule 14.12.2020