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

How to transform string into binary records?

我有这样的基础here.

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

我需要将列:"gender"、"jundice"、"austim" 转换为二进制记录 0-1。 我希望看到这样的 table。

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

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

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

sklearn.preprocessing import LabelEncoder

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

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