読者です 読者をやめる 読者になる 読者になる

<Python, pandas> DataFlame.copy()

pandas Python

データフレーム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