我如何在 dplyr-fashion 中对 pandas 中的 DF 进行分组、总结和过滤?

Ped*_*ius 3 python r pandas dplyr

我目前正在研究 pandas,我来自 R/dplyr/tidyverse 背景。

Pandas 有一个不太直观的 API,我如何使用 pandas 语法从 dplyr 优雅地重写此类操作?

library("nycflights13")
library("tidyverse")

delays <- flights %>%
  group_by(dest) %>%
  summarize(
    count = n(),
    dist = mean(distance, na.rm = TRUE),
    delay = mean(arr_delay, na.rm = TRUE)
  ) %>%
  filter(count > 20, dest != "HNL")
Run Code Online (Sandbox Code Playgroud)

Nur*_*Taş 5

pd.DataFrame.agg 方法不允许在方法本身中更改列名称有太大的灵活性

这并不完全正确。实际上,您可以像在 R 中一样重命名内部的列agg,尽管最好不要用作count列名,因为它也是一个属性:

    delays = (
    flights
    .groupby('dest', as_index=False)
    .agg(
        count=('year', 'count'),
        dist=('distance', 'mean'),
        delay=('arr_delay', 'mean'))
    .query('count > 20 & dest != "HNL"')
    .reset_index(drop=True)
)
Run Code Online (Sandbox Code Playgroud)

  • 哇,非常感谢。我伤透了脑筋,认为没有办法用“agg”来完成这个列命名之王 (2认同)