Как выбрать строки данных pandas с помощью loc с помощью индекса ligne? - PullRequest
0 голосов
/ 03 января 2019

У меня есть большой массив данных pandas, из которого я пытаюсь выбрать несколько строк с помощью инструмента .loc. Проблема в том, что условие, которое я хочу использовать в нем, нуждается в индексе, который указан в одном из столбцов информационного кадра (индексный). Я пытаюсь выбрать строку, если значение ниже значения, которое мне нужно найти с помощью индекса в простом списке.

>>> df
r   v   index
1   2   2
2   4   3
3   20  1

>>> list
[3,6,32]

Я хочу что-то вроде:

df.loc[ df['v'] < list[ df['index'] ] ]

То есть то, что относится к индексу в исследуемой строке кадра данных.

1 Ответ

0 голосов
/ 03 января 2019

IIUC, преобразовать список в массив и использовать в качестве индексатора «index»:

v = np.array([3,6,32])
df[df['v'] < v[df['index'] - 1]]

   r  v  index
0  1  2      2
1  2  4      3

Где,

v[df['index'] - 1]
# array([ 6, 32,  3])

r = df.loc[df['v'] < v[df['index'] - 1]].copy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...