Я пытаюсь применить условие if к серии pandas и затем применить операцию деления к другой серии в той же самой кадре данных в отношении целочисленного значения из списка.Pandas условное деление, серия по списку
Логика, которую я пытаюсь применить, заключается в следующем: Если категория домашних хозяйств в серии hh_cat
соответствует текущему значению i
, то разделите серию потребления на соответствующую общую подгруппу по семейному потреблению, указанную в списке значение family_con[i-1]
.
for i in hh_cat:
result = mod_df[(mod_df["hh_cat"]==i)].div()["consumption"](family_con[i-1])
TypeError Traceback (most recent call last)
<ipython-input-120-219bc0ce5a07> in <module>()
1 for i in hh_cat:
----> 2 result = mod_df[(mod_df["hh_cat"]==i)].div()["consumption"] (family_con[i-1])
TypeError: f() takes at least 2 arguments (1 given)
непроверенный, но, возможно, попробуй 'mod_df [(mod_df [" hh_cat "] == i)] [" потребление "]. Div (family_con [i-1])' – Leo
больше из stacktrace поможет, что такое 'f '? –
Первое предложение исправляет ошибку, но я пытаюсь найти способ передать результаты в новую серию, которая будет добавлена в dataframe. Я не уверен, что цикл является лучшим способом для этого, но я передал результаты разделения в список, который сохраняет правильные значения, но с переменным индексом, если операция выполняется в разных строках для разных значений я. Я полагаю, что я мог бы прибегнуть к списку в соответствии с номером индекса строк, но он кажется довольно неэффективным. – broonz