我有这样的基础here。
df = pd.read_csv('c:/1/Autism_Data.arff',na_values="?")
我需要将“ gender”,“ jundice”,“ austim”列转换为Binar记录0-1。 我希望看到这样的桌子。
答案 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