Мне нужно сделать некоторые математические расчеты, используя следующий фрейм данных.В цикле for, проходящем по ячейкам столбца VALUE, мне нужно получить соответствующий FracDist.
VALUE FracDist
0 11 0.022133
1 21 0.021187
2 22 0.001336
3 23 0.000303
4 24 0.000015
5 31 0.000611
6 41 0.040523
7 42 0.285630
8 43 0.161956
9 52 0.296993
10 71 0.160705
11 82 0.008424
12 90 0.000130
13 95 0.000053
Сначала я составил список значений VALUE, которые я могу использовать в цикле for, который работал, как и ожидалось:
IN: LCvals = df['VALUE'].tolist()
print LCvals
OUT: [11, 21, 22, 23, 24, 31, 41, 42, 43, 52, 71, 82, 90, 95]
Когда я пытаюсь извлечь ячейку из столбца FracDist информационного кадра, основываясь на том, в какой строке VALUE включен цикл for, вот где возникает проблема.Вместо того, чтобы искать строки, используя VALUE из столбца VALUE, код пытается искать строки, используя VALUE в качестве индекса.Итак, что я получаю:
IN: for val in LCvals:
print val
print LCdf.loc[val]['FracDist']
OUT: 11
0.00842444155517
21
KeyError: 'the label [21] is not in the [index]'
Обратите внимание, что строка FracDist, которая захватывается для VALUE = 11, взята из индекса 11, а не VALUE 11.
Что необходимо изменить в этом для кода циклазапросить строки на основе VALUE в столбце VALUE, а не VALUE как место в индексе?