Я преобразовал непрерывную функцию в категориальную.Я получаю NaN в Пандах - PullRequest
0 голосов
/ 19 сентября 2019

Я преобразовал непрерывный набор данных в категориальный.Я получаю значения nan, когда значение непрерывных данных равно 0.0 после преобразования.Ниже приведен мой код

import pandas as pd
import matplotlib as plt
df = pd.read_csv('NSL-KDD/KDDTrain+.txt',header=None)
data = df[33]
bins = [0.000,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00]
category = pd.cut(data,bins)
category = category.to_frame()
print (category)

Как мне преобразовать значения, чтобы я не получил значения NaN.Я приложил два снимка экрана, чтобы лучше понять, как выглядят фактические данные и как конвертируются данные. Это основной набор данных . Это то, чем оно становится после использования bin и pandas.cut () .Как это может «0,00» остаться как другие значения в наборе данных.

1 Ответ

0 голосов
/ 19 сентября 2019

При использовании pd.cut вы можете указать параметр include_lowest = True.Это сделает первый внутренний левый включительно (он будет содержать значение 0, так как ваш первый интервал начинается с 0).

Таким образом, в вашем случае вы можете настроить свой код на

import pandas as pd
import matplotlib as plt
df = pd.read_csv('NSL-KDD/KDDTrain+.txt',header=None)
data = df[33]
bins = [0.000,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00]
category = pd.cut(data,bins,include_lowest=True)
category = category.to_frame()
print (category)

Ссылка на документацию для pd.cut

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