如何将字符串转换为二进制记录?
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
我有这样的基础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