したがって、データフレームのスライスを作成し、データフレームをコピーせずにそのスライスの最初の項目の値を設定したいと思います。例えば:
df = pandas.DataFrame(numpy.random.rand(3,1))
df[df[0]>0][0] = 0
ここでのスライスは無関係であり、単なる例であり、データ フレーム全体を再び返します。要は、例のようにすればコピー警告付きの設定になります(当然)。また、最初にスライスしてから、ILOC/IX/LOC を使用し、ILOC を 2 回使用してみました。つまり、次のようなものです。
df.iloc[df[0]>0,:][0] = 0
df[df[0]>0,:].iloc[0] = 0
そして、これらのどちらも機能しません。繰り返しますが、スライスされたバージョンだけであっても、データフレームのコピーを作成したくありません。
編集: マスクまたは IdxMax を使用する 2 つの方法があるようです。インデックスが一意の場合は IdxMax メソッドが機能し、そうでない場合はマスク メソッドが機能するようです。私の場合、インデックスは一意ではありません。最初の投稿で言及するのを忘れていました。