2015-11-26 28 views
0

我想通過使用整數索引(使用iloc)尋址行,並使用位置索引(使用loc)尋址列來更改數據框中的值。熊貓數據框:組合位置和整數索引

無論如何要結合這兩種方法嗎?我相信它會和我說的一樣,我想要這個數據框的第320行和標題爲「columnTitle」的列。這可能嗎?

+3

對不起,你是在'df ['列標題']之後,你是iloc [319] = some_val'? – EdChum

回答

1

IIUC您可以直接在列調用iloc

In [193]: 
df = pd.DataFrame(columns=list('abc'), data = np.random.randn(5,3)) 
df 

Out[193]: 
      a   b   c 
0 -0.810747 0.898848 -0.374113 
1 0.550121 0.934072 -1.117936 
2 -2.113217 0.131204 -0.048545 
3 1.674282 -0.611887 0.696550 
4 -0.076561 0.331289 -0.238261 

In [194]: 
df['b'].iloc[3] = 0 
df 

Out[194]: 
      a   b   c 
0 -0.810747 0.898848 -0.374113 
1 0.550121 0.934072 -1.117936 
2 -2.113217 0.131204 -0.048545 
3 1.674282 0.000000 0.696550 
4 -0.076561 0.331289 -0.238261 
1

混合整數和標籤的訪問是通過ix支持。

df = pd.DataFrame(np.random.randn(5,3), columns=list('ABC')) 
>>> df 
      A   B   C 
0 -0.473002 0.400249 0.332440 
1 -1.291438 0.042443 0.001893 
2 0.294902 0.927790 0.999090 
3 1.415020 0.428405 -0.291283 
4 -0.195136 -0.400629 0.079696 

>>> df.ix[[0, 3, 4], ['B', 'C']] 
      B   C 
0 0.400249 0.332440 
3 0.428405 -0.291283 
4 -0.400629 0.079696 

df.ix[[0, 3, 4], ['B', 'C']] = 0 

>>> df 
      A   B   C 
0 -0.473002 0.000000 0.000000 
1 -1.291438 0.042443 0.001893 
2 0.294902 0.927790 0.999090 
3 1.415020 0.000000 0.000000 
4 -0.195136 0.000000 0.000000