以下のようなデータがあったとして、
import pandas as pd data1 = ["d1","d2","d3"] data2 = ["D1","D2","D3"] data3 = ["d1","D2","D3"] data4 = ["D4","D2","D3"] df = pd.DataFrame(data=[data1,data2,data3,data4],index=["行1","行2","行3","行4"], columns=["列1","列2","列3"]) data5 = ["d3","d2","d3"] data6 = ["D1","D2","D3"] data7 = ["d3","D2","D3"] data8 = ["D4","D2","D3"] df2 = pd.DataFrame(data=[data5,data6,data7,data8],index=["行1","行2","行3","行4"],columns=["列1","列2","列3"])
次の動作をさせます。dfとdf2の列1のアンドを取ったdfをdf3に渡す
df3 = df[df["列1"]==df2["列1"]] # (※1)
df3の要素を書き換えます
df3.at["行2","列1"] = "HOGE"
期待しているのはdf3のみならず、元のdfのテーブルも書き換わっていることですが
(※1)でdf3が参照ではなくコピーされており、dfとdf3が別物として扱われてしまいます
このような場合(意図的に参照渡しをさせたい)、どのようにすればよいでしょうか?

回答1件
あなたの回答
tips
プレビュー