У меня есть df с пандой данных, и я хотел бы сгруппировать переменную 'house' и выполнить определенные операции с тремя другими переменными: 'var1', 'var2' и 'var3'. Заметим, что три переменные являются числовыми, а переменная var1 принимает значения 1,2,3.
data = {'house':['A', 'B', 'A', 'A', 'B', 'B', 'B'], 'var1':[3, 0, 1, 3,4,5,3], 'var2':[2, 0, 5, 1,4,1,3],'var3':[4, 2, 3, 3,0,5,1]}
df = pd.DataFrame(data)
df
Теперь я хотел бы создать 3 новые переменные
- new_var1 = Подсчитать, сколько раз var3 принимает значения == 3
- new_var2 = sum var2(простой агрегат)
- new_var3 = сумма var3 (простой агрегат)
Если бы я использовал язык программирования R, я бы сделал это мгновенно
require(dplyr)
data = data.frame('house'=c('A', 'B', 'A', 'A', 'B', 'B', 'B'),
'var1'=c(3, 0, 1, 3,4,5,3),
'var2'=c(2, 0, 5, 1,4,1,3),
'var3'=c(4, 2, 3, 3,0,5,1))
df= data %>% group_by(house) %>% summarise(new_var1 = sum(var1 == 3),
new_var2 = sum(var2),
new_var2 = sum(var2))
df
В Python, во-первых, я группирую по
df.groupby(['house'])['var1','var2', 'var3']
Но я бы хотел продолжить с той же строкой кода, и я не знаю, как это сделать. В питоне есть какая-нибудь аналогичная функция суммирования?