<Python, pandas> DataFlame.copy()
データフレームDataFlame
のコピーは、=
だけではだめらしい。。。初めてしった。。。
In [207]: df = pd.DataFrame(data=[(0,1),(2,3)]) In [208]: df Out[208]: 0 1 0 0 1 1 2 3 In [209]: df1 = df In [210]: df1.ix[0,0]=99 In [211]: df1 Out[211]: 0 1 0 99 1 1 2 3 In [212]: df Out[212]: 0 1 0 99 1 1 2 3
と、いうことで、=
はコピーでなく、リンクを作成している。
コピーを作成するのは、.copy()
In [213]: df1 = df.copy() In [214]: df1.ix[1,1] = 99 In [215]: df1 Out[215]: 0 1 0 99 1 1 2 99 In [216]: df Out[216]: 0 1 0 99 1 1 2 3