0

我最初可以更改 DataFrame 的第一个条目:

In [6]: df = pd.DataFrame(np.random.rand(5,2))
In [7]: df
Out[7]:
          0         1
0  0.514592  0.459589
1  0.329704  0.409099
2  0.061246  0.966191
3  0.336747  0.908513
4  0.169220  0.468437

In [8]: df.ix[0][0] = 1
In [9]: df
Out[9]:
          0         1
0  1.000000  0.459589
1  0.329704  0.409099
2  0.061246  0.966191
3  0.336747  0.908513
4  0.169220  0.468437

但是在我这样做之后:

In [10]: df[0] = np.floor(df.index / 10).astype(int) * 10
In [11]: df
Out[11]:
   0         1
0  0  0.459589
1  0  0.409099
2  0  0.966191
3  0  0.908513
4  0  0.468437

我找不到改变它的方法。

In [12]: df.ix[0][0] = 1
In [13]: df
Out[13]:
   0         1
0  0  0.459589
1  0  0.409099
2  0  0.966191
3  0  0.908513
4  0  0.468437

而且我什至无法更改其他列的元素

In [16]: df.ix[0][1] = 1

In [17]: df
Out[17]:
   0         1
0  0  0.459589
1  0  0.409099
2  0  0.966191
3  0  0.908513
4  0  0.468437

这是怎么回事?

4

1 回答 1

2

您正在编辑副本,请尝试

In [3]: df = pd.DataFrame(np.random.rand(5,2))

In [4]: df[0] = np.floor(df.index / 10).astype(int) * 10

In [5]: df
Out[5]: 
   0         1
0  0  0.201611
1  0  0.390364
2  0  0.727422
3  0  0.941035
4  0  0.036764

In [6]: df.ix[0,1] = 1

In [7]: df
Out[7]: 
   0         1
0  0  1.000000
1  0  0.390364
2  0  0.727422
3  0  0.941035
4  0  0.036764
于 2013-03-21T21:51:50.990 回答