2016-10-21 2 views
2
CD_FARE MTH DAY ID_CALENDAR H0 H1 H2 H3 PE1 PE2 PE3 PE4 
2.0  1 M Cal01  1  2 1 3 0.14 0.15 0.1 0.2 
2.0  1 T Cal01  1  2 1 3 0.14 0.16 0.1 0.2 
2.0  1 W Cal01  1  2 4 3 0.14 0.12 0.1 0.2 
2.0  1 T Cal01  2  2 1 3 0.14 0.11* 0.1 0.2 
2.0  1 F Cal01  4  2 1 3 0.14 0.18 0.1 0.2 

Я хочу знать, как я могу получить значение из определенной ячейки.Получите значение ячейки по строке и столбцу

Например: Я хочу вернуть значение 0.11. Я знаю положение строки (в этом случае 3) и имя столбца (PE2). Могу ли я выбрать данные таким образом ?:

data = df.iloc[3, 'PE2'] 

ответ

2

Очевидно, что это не работает, это дает ValueError

ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types 

Но если вы используете df.loc[3, 'PE2'] вместо метода iloc, он работает

0

В случае необходимости - по выбору Series.iloc:

print (df['PE2'].iloc[3]) 
0.11 

Пример:

df = pd.DataFrame({'PE2':[1,2,3], 
        'B':[4,5,6]}, index=['a','b','c']) 

print (df) 
    B PE2 
a 4 1 
b 5 2 
c 6 3 

#third row in colum PE2 
print (df['PE2'].iloc[2]) 
3 

#index value c and column PE2 
print (df.ix['c','PE2']) 
3 

#index value c and column PE2 
print (df.loc['c','PE2']) 
3 

#third row and second column 
print (df.iloc[2,1]) 
3 

, но если нужно выбрать с помощью индекса и значение столбца использования ix или DataFrame.loc:

df = pd.DataFrame({'PE2':[1,2,3], 
        'B':[4,5,6]}) 

print (df) 
    B PE2 
0 4 1 
1 5 2 
2 6 3 

print (df.loc[2, 'PE2']) 
3 

print (df.ix[2, 'PE2']) 
3 

Вы также можете проверить selection by label и selection by position в pandas documentation.

Смежные вопросы