有没有类似于R的dplyr :: mutate()的Python pandas函数,可以通过在分组数据的一列上应用函数来向分组数据添加新列?以下是问题的详细说明:
我使用以下代码生成样本数据:
现在,我想添加一个新的列,该列具有美国和英国的最大人口。我可以使用以下R代码完成...
我使用以下代码生成样本数据:
x <- data.frame(country = rep(c("US", "UK"), 5), state = c(letters[1:10]), pop=sample(10000:50000,10))
现在,我想添加一个新的列,该列具有美国和英国的最大人口。我可以使用以下R代码完成...
x <- group_by(x, country)
x <- mutate(x,max_pop = max(pop))
x <- arrange(x, country)
...或者等价地,使用R的dplyr管道运算符:
x %>% group_by(country) %>% mutate(max_pop = max(pop)) %>% arrange(country)
我的问题是如何使用pandas在Python中实现它?我尝试了以下代码,但无效。
x['max_pop'] = x.groupby('country').pop.apply(max)
x %>% group_by(country) %>% mutate(max_pop = max(pop)) %>% arrange(country)
...某个R程序员可能会有点难过! - Parfaitfor
和while
循环就好了。它们太难理解和编写了。现在我喜欢 lapply、mapply、vapply、sapply 这些方法,这是 Python 的 pandas 缺少的(没有自定义解决方案的情况下)。 - Parfaitfor
和while
循环提供了一些严重的性能优势。它们更快。我不确定管道是否比传统方法更快。请告诉我管道是否比传统方法更快。 - saurav shekhar