Панды: Самый быстрый способ редактировать значения в одном столбце на основе значений из другого столбца - PullRequest
0 голосов
/ 15 декабря 2018

Вместо того, чтобы полагаться на запросы из SQL, я пытаюсь найти способы, которыми я могу использовать панд для выполнения той же работы, но более эффективным способом.

Проблема, которую я пытаюсь решить,лучше всего проиллюстрировано на следующем упрощенном примере:

df = pd.DataFrame({'id':list([1,2,3,4,5,6]),
                   'value':[12,8,31,14,45,12]})

Исходя из данных, я хотел бы изменить значения столбца «значение», когда идентификатор равен от 1,2,4 до 32,15,14

Мне удалось сделать это для одного значения с помощью следующего кода:

df.loc[ df['id'] ==1, 'value'] = 32

Однако проблема в том, что приведенный выше код очень неэффективен по времени.Поэтому мне интересно, может ли кто-нибудь помочь найти решение, в котором я могу как можно быстрее обновить 20-30 значений в таблице панд.

Заранее спасибо

1 Ответ

0 голосов
/ 15 декабря 2018

Использование isin:

df.loc[df['id'].isin([1, 2, 4]), 'value'] = [32, 15, 14]

df

   id  value
0   1     32
1   2     15
2   3     31
3   4     14
4   5     45
5   6     12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...