Как преобразовать строку в двоичные записи? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть такая база здесь .

df = pd.read_csv('c:/1/Autism_Data.arff',na_values="?")

enter image description here

Мне нужно преобразовать столбцы: "пол", "jundice "," austim "в бинарных записях 0-1.Я хотел бы видеть эту таблицу такой.enter image description here

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Если вы хотите быть кратким, вы можете использовать pd.Categorical.Например,

df['gender'] = pd.Categorical(df.gender).codes

вы можете расширить это на другие нужные столбцы.Они будут назначать номера в алфавитном порядке - поэтому вам следует обратить на это внимание и замаскировать иные желаемые результаты.В качестве альтернативы, если вы хотите больше контроля, вы можете использовать LabelEncoder.

sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
df['gender'] = le.fit_transform(df.gender)
1 голос
/ 24 апреля 2019

Вы можете map() значения с df['gender'].map({'f':1, 'm':0})

import pandas as pd

df = pd.DataFrame({
    'gender':['f','m','m','f', 'f'],
    'jundice':['no','no','yes','no','no'],
    'austim':['no','yes','yes','yes','no'],
})
#print(df)

df['gender'] = df['gender'].map({'f':1, 'm':0})
df['jundice'] = df['jundice'].map({'yes':1, 'no':0})
df['austim'] = df['austim'].map({'yes':1, 'no':0})

print(df)

Результат:

   gender  jundice  austim
0       1        0       0
1       0        0       1
2       0        1       1
3       1        0       1
4       1        0       0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...