25

恐ろしいものについての無数の質問がありますSettingWithCopyWarning

それがどのように起こるかについて、私はよく理解しています。(私が良いと言ったことに注意してください、素晴らしいではありません)

dfに格納されている属性を介して、データフレームが別のデータフレームに「アタッチ」されている場合に発生しis_copyます。

これが例です

df = pd.DataFrame([[1]])

d1 = df[:]

d1.is_copy

<weakref at 0x1115a4188; to 'DataFrame' at 0x1119bb0f0>

その属性をNoneまたはに設定できます

d1 = d1.copy()

@Jeff のような開発者を見たことがありますが、他に誰がいるか思い出せません。SettingWithCopyWarning目的があることを引用します。

質問では、オリジナルにバックを
割り当てることによって警告を無視することがなぜ悪い考えであるかを示す具体的な例は何ですか?copy

明確にするために、 「悪い考え」を定義します。

悪い考えコードが壊れているので修正が必要だという電話が土曜の夜中にかかるようなコードを本番環境に置く
のは悪い考えです。

df = df.copy()リードを迂回SettingWithCopyWarningしてその種の電話を受けるにはどうすればよいでしょうか。これは混乱の原因であり、明確にしようとしているため、詳しく説明したいと思います。爆破するエッジケースが見たい!

4

4 に答える 4