Как установить функцию базы данных .loc установки многих значений панд? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть следующие строки, которые работают нормально:

dbOut.loc[dbOut["id"] == id, "date"] = datevalue
dbOut.loc[dbOut["id"] == id,"number"] = numbervalue

Проблема в том, что каждая строка занимает слишком много времени для запуска.У меня около 10 строк такого типа, поэтому мое время итерации равно 15 итерациям в секунду.оставляя только одну, вы получаете 150 итераций в секунду.Вопрос: есть ли способ сделать только один .loc и установить каждое значение для каждой строки?

Я пробовал что-то вроде:

dbOut.loc[dbOut["id"] == id, ["date","number"]] = datevalue, numbervalue

, но это не работает.

Я думаю, что, возможно, есть способ сначала создать loc, а затем применить каждое значение к каждому столбцу, но я не знаю как.

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

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

вы можете использовать numpy

dbout['date'] = np.where(dbout['id'] == id, datevalue,None)

Аналогично

dbout['number'] = np.where(dbout['id'] == id, numbervalue,None)

Примечание: учитывая, что идентификатор предопределен, замените значение None на другое, если требуется.

0 голосов
/ 12 февраля 2019

Это должно работать.

dbOut.loc[dbOut["id"] == id, ["date", "number"]] = [datevalue, numbervalue]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...