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)
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)