如何将字符串转换为二进制记录?

时间:2019-04-24 04:01:15

标签: python pandas sklearn-pandas

我有这样的基础here

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

enter image description here

我需要将“ gender”,“ jundice”,“ austim”列转换为Binar记录0-1。 我希望看到这样的桌子。 enter image description here

2 个答案:

答案 0 :(得分:2)

如果您想简短一点,可以使用pd.Categorical。例如,

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

您可以将其扩展到其他所需的列。这些将按字母顺序分配数字-因此,您应该注意这一点,并掩盖否则需要的结果。另外,如果您想要更多控制权,则可以使用LabelEncoder

sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
df['gender'] = le.fit_transform(df.gender)

答案 1 :(得分:1)

您可以使用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