Ошибка при печати на Kaggle с использованием Seaborn. Ошибка говорит, что у меня есть категорические данные, даже если мои данные int64 - PullRequest
0 голосов
/ 16 апреля 2020

Я работал с набором данных банковского маркетинга из Kaggle: https://www.kaggle.com/janiobachmann/bank-marketing-dataset

Я хочу построить график kdeplot для числовых столбцов, отфильтровать по deposit. Все числовые столбцы работают нормально, кроме pdays и previous столбцов.

В частности, когда я строю эти 2 столбца с помощью 'deposit' == 'yes', все в порядке. Но когда я отображаю эти 2 с помощью 'deposit' == 'no', он говорит, что мои данные являются категориальными столбцами, поэтому это невозможно сделать. Все это работает с моим ноутбуком Jupyter.

Пожалуйста, посмотрите некоторые скриншоты для этой проблемы: 'deposit' == 'yes' отлично работает

' депозит '==' нет 'говорит, что у меня есть категорические столбцы

подробнее об этой ошибке

1 Ответ

0 голосов
/ 19 апреля 2020

На втором скриншоте вы на самом деле пробуете distplot. Эта функция нуждается в числовых данных, а не в категориальных данных.

Редактировать:

Довольно много записей в этом столбце имеют значение -1. Несмотря на то, что они числовые, на самом деле это хак, если я правильно понимаю, использовать NaN в целочисленном столбце.

Если я заменяю их и удаляю, я получаю правильный вывод:

sns.kdeplot(df[df['deposit']=='no']['pdays'].replace(-1, np.nan).dropna())

enter image description here

Обратите внимание, что с pandas 0.24.0 поддерживается поддержка <NA> записей в столбце целых чисел благодаря использованию нового Int64: «Целочисленный тип данных Nullable» .

...