我正在尝试从R的dplyr转换到Python中的pandas。我已经通过了几个教程来学习基础知识,但我被困在一个任务。我想使用groupby中的agg方法对多个列执行操作。这是R中的一项琐碎任务,如下例所示:
library(dplyr)
DF <- data.frame('ID'=c(1, 1, 1, 2, 2, 2),
'A'=c(1, 2, 3, 4, 5, 6),
'B'=c(2, 4, 6, 8, 10, 12))
IDgp <- group_by(DF, ID) %>%
summarise(C = prod(B) / sum(A))
### # Output:
###
### > DF
### ID A B
### 1 1 1 2
### 2 1 2 4
### 3 1 3 6
### 4 2 4 8
### 5 2 5 10
### 6 2 6 12
###
### > IDgp
### # A tibble: 2 x 2
### ID C
### <dbl> <dbl>
### 1 1 8
### 2 2 64
在这个例子中,我在DF中的ID列上分组,并基于A列和B列创建一个任意的新变量。有没有一种简单的方法可以使用pandas将这个例子转换成Python?你知道吗
耶斯雷尔提到的
apply
方法是可行的。你知道吗或者,如果要存储中间结果并通过链接分配新值,可以使用
.agg
和.assign
。你知道吗您可以使用^{} :
用^{} 和^{} 除以^{} 的另一个解:
同:
相关问题 更多 >
编程相关推荐