【发布时间】:2017-07-28 12:51:12
【问题描述】:
我正在尝试从 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?
【问题讨论】:
标签: python pandas pandas-groupby