【发布时间】:2019-10-01 03:21:07
【问题描述】:
我有一个熊猫数据框 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 = sum 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']
但我想继续使用同一行代码,但我不知道该怎么做。 python中有一些类似的'summarise'函数吗?
【问题讨论】: