Создать список на основе идентификаторов в кадре данных - PullRequest
0 голосов
/ 26 октября 2018

У меня есть фрейм данных с двумя столбцами с именами id и value и списком с именем value_list, который содержит числа с плавающей запятой. Фрейм данных выглядит следующим образом:

       id  value
    0   8    1.0
    1   7    2.0
    2   6    5.0
    3   4    4.0

и value_list выглядит так:

 [5,5,4,2,1]

Вопрос: Как мне создать список, содержащий идентификаторы, соответствующие значениям в value_list на основе кадра данных? То есть я хочу получить следующий список:

[6,6,4,7,8]

1 Ответ

0 голосов
/ 26 октября 2018

Использование set_index с Series.loc:

L = df.set_index('value')['id'].loc[value_list].tolist()
print (L)
[6, 6, 4, 7, 8]

Более общее решение, если возможно, некоторые значения value_list не существуют в столбце value с intersect1d для пересечения их:

L = df.set_index('value')['id'].loc[np.intersect1d(value_list, df['value'])].tolist()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...