Я уверен, что есть лучшее решение моей текущей проблемы в Пандах:
У меня есть датафрейм с такими столбцами, как
df.columns = ['bar','foo',0,1,2]
Я хочу вызвать базу данных SQL, где я фильтрую по кортежу значений bar и foo, вычисляю что-то с возвращенным результатом, используя столбцы 0 и 1, и возвращаю результат в столбец 3.
На данный момент я делаю это с помощью groupby и нигде не нашел правильного способа использовать метод transform.
groups = df.groupby('bar','foo')
for (bar,foo), group in groups:
db_results = read_db(bar,foo)
df[3].loc(groups.groups((bar,foo))) = f(db_results,df[0].loc(...),df[1].loc(...))
Я полагаю, это немного некрасиво, верно? Повсюду должно быть что-то большее с меньшей избыточностью, чем в df.loc. Но я не знаю, как получить доступ к панели, используя метод transform для объектов Groupby.
Спасибо за вашу помощь