pandasで条件を満たした列に、条件を満たした行の値を代入する

投稿者: Anonymous

house pricesのcsvで、lotfrontageが欠損しており、Lotshapeがregの時にLotAreaの平方根値を代入したく以下のコードを入れたのですが、動きませんでした。

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea'])

エラーコードは以下です。

ValueError: cannot reindex from a duplicate axis

よろしくおねがいします。

解決

インデックスが重複しているのでしょう。よくあるエラーです。
以下の内、どれかが動くと思うので試してみてください。

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea'].values())

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea'].values)

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea'].values())

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea']).values()

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea'].values())

all_data.loc[(all_data['LotFrontage'].isnull()) & (all_data['LotShape'] == 'Reg'),'LotFrontage'] = np.sqrt(all_data['LotArea']).values
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *