Python 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] 此行为似乎不一致。有时缺失,有时不缺失。我不确定发生了什么,

我有一个pandas groupby对象:

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
    没有该列。如果我弄清楚发生这种情况的原因,我会在这里发布答案。