数据分组聚合、过滤、转换与整理为整洁形式
1. 数据分组聚合求最大连续值
在处理数据时,我们经常需要找出数据中的连续值,例如航班的准时到达或延误的最大连续次数。下面我们将详细介绍如何使用Python的pandas库来实现这一功能。
首先,我们定义一个函数来计算给定Series中连续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. 按航空公司和出发机场进行分组。
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()
<
超级会员免费看
订阅专栏 解锁全文
1117

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



