ファンシーインデックスでフィルタリングした後、変更をパンダデータフレームにマージする最も簡単な方法は何ですか?
たとえば、2 つの列 x と y を持つデータフレームを定義し、x が偶数の整数であるすべての行を選択してから、y の対応する値を 0 に設定します。
d = pd.DataFrame({'x':range(10), 'y':range(11,21)})
d[d.x % 2 == 0]['y'] = 0
「派手なインデックス作成」ブールクエリはデータフレームのコピーを作成するため、変更が元のデータフレームに反映されることはありません。この操作を実行するより良い方法はありますか?
私の現在の解決策は、ファンシーブールインデックスに基づいて一時データフレーム w を定義し、w で 'y' の対応する値を 0 に設定し、インデックスを使用して w を d にマージすることです。これを行うには、より効率的な (できればより直接的な) 方法が必要です。
w = d[d.x % 2 == 0]
w.y = 0