web-dev-qa-db-ja.com

パンダのデータフレームで列の選択された行の値を置き換える方法は?

12列のトレーニングデータセットがあります。 enter image description here

Cabin列の行をPclass列の値1に従って選択します。次に、Cabin列の選択した行の値を1に置き換えます。

私は次のコードを実行しましたが、キャビン列のすべての値を1に置き換えます。NaN値は1に置き換えられます。選択した行のみを置き換えるにはどうすればよいですか?

train['Cabin'] =train[train['Pclass']==1]['Cabin']=1
7
Bilal Butt

loc で列Cabinの条件行を選択し、スカラーに設定できます。

train.loc[train['Pclass'] == 1, 'Cabin'] = 1

そして、コードはと同じなので、すべての値を1に置き換えます。

train['Cabin'] = 1

サンプル

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
8
jezrael