如何替换熊猫数据框中列的选定行的值?

Bil*_*utt 5 python machine-learning pandas anaconda

我有12列的火车数据集。 在此处输入图片说明

我想根据Pclass列的值1 选择Cabin列的行,然后用1替换Cabin列的选定行的值。

我做了以下代码,但它用1替换了小屋列的所有值,甚至用1替换了NaN值。我如何只能替换所选的行?

train['Cabin'] =train[train['Pclass']==1]['Cabin']=1
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 6

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