18、数据分组聚合、过滤、转换及整理成整洁形式

数据分组聚合与整洁化处理

数据分组聚合、过滤、转换及整理成整洁形式

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值