Python: обновить значение столбца X, если значение столбца Y находится в списке L возможных значений - PullRequest
0 голосов
/ 27 августа 2018

Существует фрейм данных со списком идентификаторов автобусных остановок, а концентратор имеет значение «none».Мне нужно обновить фрейм данных так, чтобы - если идентификатор автобусной остановки находится в списке a_ids, то его соответствующий концентратор должен быть a, если в b_ids тогда hub = b и т. Д.

a = pd.DataFrame(({'stop' : ['10388','10382','10383','10387','10389','25568'],'hub' : ['none', 'none', 'none', 'none', 'none', 'none']}))
a_ids = ['10388','10382','10383']
b_ids = ['10387','10389','25568','10381']

a

Я пытался:

a[(a.stop.isin(a_ids)),'hub'] = 'a'

Я понимаю, что мой подход неверен;Любая помощь приветствуется.

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте:

a = pd.DataFrame(({'stop' : ['10388','10382','10383','10387','10389','25568'], 
                   'hub' : ['none', 'none', 'none', 'none', 'none', 'none']}))

a_ids = ['10388','10382','10383']
b_ids = ['10387','10389','25568','10381']
print (a)

# Output
    stop    hub
0   10388   none
1   10382   none
2   10383   none
3   10387   none
4   10389   none
5   25568   none

Просто используйте loc вместе с isin.

a.loc[a.stop.isin(a_ids), 'hub'] = 'a'
a.loc[a.stop.isin(b_ids), 'hub'] = 'b'

output:

    stop    hub
0   10388   a
1   10382   a
2   10383   a
3   10387   b
4   10389   b
5   25568   b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...