以下のコードを実行すると前者は元のDataFrameを更新しますが、後者は更新されません。連続しないDataFrameの各要素を編集しやすい形に格納しなおして操作しようと思うのですが、良い方法はありますでしょうか?

import pandas as pd

df = pd.DataFrame( {'tag': ['A','B','A','B'], 'val': [1,2,3,4] }, index=range(1, 5) )
df1 = df.ix[1:2]
df1.is_copy = False
df1.iloc[0] = 0 #この更新が元のDataFrameへ反映される(OK)
df

df = pd.DataFrame( {'tag': ['A','B','A','B'], 'val': [1,2,3,4] }, index=range(1, 5) )
df2 = df.loc[ df["tag"]=="A" ]
df2.is_copy = False
df2.iloc[0] = 0 #この更新が元のDataFrameへ反映されない(NG)
df