2016-03-24 103 views
15

我創建了一個數據幀,並設置索引:如何通過Pandas DataFrame中的索引值檢索行?

df = pd.DataFrame(np.random.randn(8, 4),columns=['A', 'B', 'C', 'D']) 
df = df.set_index('A') 

數據框看起來是這樣的:

    B   C   D 
A 
0.687263 -1.700568 0.140175 1.420394 
-0.212621 -0.700442 -0.041497 -1.034021 
-0.614214 -0.437313 -0.464493 -1.182492 
-0.885062 0.203892 -0.412400 -0.578346 
-1.222661 2.014908 -0.463674 -0.378910 
0.132472 -0.389512 0.623531 -0.788556 
-1.083620 1.167158 -0.558217 -0.222078 
1.066270 -0.215586 -0.884757 -0.878557 

如何獲得B的針對A0.687263行中的價值?

我已經試過:

e = df.loc(0.687263) 

這給了我LocIndexer對象,而不是我期望的行(我也想說明,這應該是一個單行如果可能的話):

<pandas.core.indexing._LocIndexer object at 0x10385e210> 

如果我現在嘗試e['B']我收到錯誤。

如何獲得B的價值?

回答

15

大熊貓在打印數據框時舍入值。您試圖指數的實際值是:

1.764052345967664

import pandas as pd 
import numpy as np 

np.random.seed(0) 
df = pd.DataFrame(np.random.randn(8, 4),columns=['A', 'B', 'C', 'D']) 

df = df.set_index('A') 
print df 


        B   C   D 
A          
1.764052 0.400157 0.978738 2.240893 
1.867558 -0.977278 0.950088 -0.151357 
-0.103219 0.410599 0.144044 1.454274 
0.761038 0.121675 0.443863 0.333674 
1.494079 -0.205158 0.313068 -0.854096 
-2.552990 0.653619 0.864436 -0.742165 
2.269755 -1.454366 0.045759 -0.187184 
1.532779 1.469359 0.154947 0.378163 


df.loc[1.764052345967664] 
Out[32]: 
B 0.400157 
C 0.978738 
D 2.240893 
Name: 1.76405234597, dtype: float64 
+7

我明白了 - 我是用'的.loc(X)''沒有的.loc [X]',這是我的問題。謝謝! – Richard

+5

@Richard這應該是一個答案,而不是一個評論,因爲它解決了問題的問題(和我的:) – Bastien

相關問題