我正在尝试替换数据框标题列中的值。然而。它的投掷错误
for i in range(0, 1309):
if((x['Title'][i])=='Mr'):
x['Title'][i] = '0'
if(x['Title'][i]=='Miss'):
x['Title'][i] = '1'
if(x['Title'][i]=='Mrs'):
x['Title'][i] = '2'
if(x['Title'][i]=='Master'):
x['Title'][i] = '3'
else:
x['Title'][i] = '4'
ValueError:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:1)
尝试这样创建一个名称替换字典,如下所示:
names ={'Mr':0, 'Miss':1, 'Master':2, 'Mrs':3}
并使用replace重命名这些值:
df['Title'] = df.Title.replace(names).replace({'': 4})
更新: 解决方案2你云使用应用功能
def change_names(x):
if x == 'Mr':
return 0
elif x =='Miss':
return 1
elif x == 'Master':
return 2
elif x =='Mrs':
return 3
else:
return 4
df['Title'] = df['Title'].apply(change_names)
答案 1 :(得分:0)
试试这个
df.rename(columns = {'Mr':'0'}, inplace = True)
并添加其他列