Python groupby筛选器的结果中缺少键列
我有一个pandas groupby对象:Python groupby筛选器的结果中缺少键列,python,pandas,Python,Pandas,我有一个pandas groupby对象: routeGroups = tracking.groupby(tracking.columns[0]) 然后我应用一个过滤器: filterFunc = lambda x: np.any(np.isfinite(x['LAT'])) results = routeGroups.filter(filterFunc) results是一个数据框,但用于通过跟踪创建组的列在数据框中缺少列[0] 此行为似乎不一致。有时缺失,有时不缺失。我不确定发生了什么,
routeGroups = tracking.groupby(tracking.columns[0])
然后我应用一个过滤器:
filterFunc = lambda x: np.any(np.isfinite(x['LAT']))
results = routeGroups.filter(filterFunc)
results
是一个数据框,但用于通过跟踪创建组的列在数据框中缺少列[0]
此行为似乎不一致。有时缺失,有时不缺失。我不确定发生了什么,也不确定解决方法是什么。如果进行聚合,用于分组的列将是
结果的索引
要避免这种行为,您可以
将as_index=False
传递给groupby
函数(routeGroups=tracking.groupby(tracking.columns[0],as_index=False
)
使用结果。重置索引()
对于筛选,默认行为似乎是保留列(请参见注释)。下面的答案在对组进行聚合时是相关的。在进行筛选时,我无法重现您的行为。您可以发布一个工作示例吗?我无法共享数据。我可以执行routegroup.sum()
并查看索引是“装运编号”(这是我分组的列)。但当我尝试此筛选器时:filterFunc=lambda x:np.any(np.isfinite(x[nanCol]))
tntFiltered=(routes.filter(filterFunc))
tntFiltered
没有该列。如果我弄清楚发生这种情况的原因,我会在这里发布答案。