数据分组聚合、过滤、转换及整理成整洁形式
1. 分组聚合以查找连续值
1.1 定义查找最大连续 1 的函数
在处理数据时,我们可能需要查找数据中连续 1 的最大长度。可以定义如下函数来实现:
def max_streak(s):
s1 = s.cumsum()
return s.mul(s1).diff().where(lambda x: x < 0) \
.ffill().add(s1, fill_value=0).max()
1.2 查找每个航空公司和起始机场的准时到达最大连续次数
为了找到每个航空公司和起始机场的准时到达最大连续次数,同时计算航班总数和准时到达百分比,我们可以按以下步骤操作:
1. 对航班数据按年中的日期和计划出发时间进行排序。
2. 按航空公司和起始机场进行分组。
3. 对 ON_TIME 列进行聚合操作,计算均值、数量和最大连续次数。
4. 将结果保留两位小数。
示例代码如下:
flights.sort_values(['MONTH', 'DAY', 'SCHED_DEP']) \
.groupby(['AIRLINE', 'ORG_AIR'])['ON_TIME'] \
.agg(['mean', 'size', max_streak]).round(2).head()
数据分组聚合与整洁化处理
超级会员免费看
订阅专栏 解锁全文
2582

被折叠的 条评论
为什么被折叠?



