1. ホーム
  2. python

[解決済み] pandas DataFrameのカラム値を置き換える

2022-03-14 11:56:13

質問

データフレームの1つの列の値を置き換えようとしています。その列('female')には、値 'female' と 'male' だけが含まれています。

以下のように試してみました。

w['female']['female']='1'
w['female']['male']='0' 

しかし、前の結果と全く同じコピーを受け取る。

理想としては、以下のようなループの要素に似た出力を得たいのですが。

if w['female'] =='female':
    w['female'] = '1';
else:
    w['female'] = '0';

gotchasのドキュメントに目を通しましたが、( http://pandas.pydata.org/pandas-docs/stable/gotchas.html ) が、なぜ何も起こらないのかがわかりません。

何かお手伝いいただけると幸いです。

解決方法は?

私の理解が正しければ、あなたはこのようなものを求めているのですね。

w['female'] = w['female'].map({'female': 1, 'male': 0})

(ここでは、数値を含む文字列ではなく、数値に変換しています。 以下のように変換することができます。 "1""0" を、本当に望むなら、しかし、なぜそれを望むのかよくわからない)。

あなたのコードがうまくいかないのは ['female'] を列上に配置し(2つ目の 'female' の中で w['female']['female'] は、quot;値が'female'の行を選択する、という意味ではありません。 が存在する行を選択するという意味です。 インデックス は'female'ですが、DataFrameの中には存在しないかもしれません。