【发布时间】:2017-12-01 20:13:28
【问题描述】:
我有一个车辆坐标的 pandas 数据框(多天的多辆车)。对于每辆车和每一天,我都会做两件事:要么对其应用算法,要么在不满足某些标准时将其完全从数据集中过滤掉。
为了实现这一点,我使用df.groupby('vehicle_id', 'day'),然后使用.apply(algorithm) 或.filter(condition),其中algorithm 和condition 是接收数据帧的函数。
我希望我的数据集的完整处理(涉及多个 .apply 和 .filter 步骤)以声明式的方式写出来,而不是强制循环遍历组,以实现整个事情的目标看起来像:
df.group_by('vehicle_id', 'day').apply(algorithm1).filter(condition1).apply(algorithm2).filter(condition2)
当然,上面的代码是不正确的,因为.apply() 和.filter() 返回了新的数据帧,这正是我的问题。他们将所有数据返回到一个数据框中,我发现我已经连续申请了.groupby('vehicle_id', 'day')。
有没有一种很好的方法可以写出来,而不必一遍又一遍地按相同的列分组?
【问题讨论】:
标签: pandas dataframe declarative