Bil*_*utt 5 python machine-learning pandas anaconda
我想根据Pclass列的值1 选择Cabin列的行,然后用1替换Cabin列的选定行的值。
我做了以下代码,但它用1替换了小屋列的所有值,甚至用1替换了NaN值。我如何只能替换所选的行?
train['Cabin'] =train[train['Pclass']==1]['Cabin']=1
Run Code Online (Sandbox Code Playgroud)
您可以按loc条件列进行选择,Cabin并将其设置为标量:
train.loc[train['Pclass'] == 1, 'Cabin'] = 1
Run Code Online (Sandbox Code Playgroud)
并且您的代码将所有值替换为1因为与:
train['Cabin'] = 1
Run Code Online (Sandbox Code Playgroud)
样品:
train = pd.DataFrame({'Pclass':[1,2,3,1,2],
'Cabin':[10,20,30,40,50]})
print (train)
Cabin Pclass
0 10 1
1 20 2
2 30 3
3 40 1
4 50 2
train.loc[train['Pclass'] == 1, 'Cabin'] = 1
print (train)
Cabin Pclass
0 1 1
1 20 2
2 30 3
3 1 1
4 50 2
Run Code Online (Sandbox Code Playgroud)