2016-10-31 70 views
0

我有一個熊貓GROUPBY對象缺少鍵列:在大熊貓GROUPBY過濾器的結果

routeGroups = tracking.groupby(tracking.columns[0]) 

然後我申請一個過濾器:

filterFunc = lambda x: np.any(np.isfinite(x['LAT'])) 
results = routeGroups.filter(filterFunc) 

results是一個數據幀,但使用的列創建數據框中缺少tracking.columns[0]組。

這種行爲似乎是不一致的..有時它缺少,有時它不是。我不確定發生了什麼事情,或者可以做些什麼。

+0

下面的答案在對羣組進行聚合時相關。在進行過濾時,我無法重現您的行爲。你能發表一個有效的例子嗎? –

+0

以及我無法分享數據。我可以執行'routeGroups.sum()'並查看索引是'SHIPMENT NUMBER'(這是我分組的列)。但是,當我嘗試這個過濾器: 'filterFunc =拉姆達X:np.any(np.isfinite(X [nanCol]))'' = tntFiltered(routes.filter(filterFunc))' 'tntFiltered'不有那個專欄。如果我弄清楚爲什麼會發生這種情況,我會在這裏發佈答案。 – BrainPermafrost

回答

0

如果進行聚合,則用於分組的列將是results的索引。

爲了避免這種情況,你既可以

  1. as_index=Falsegroupby功能(routeGroups = tracking.groupby(tracking.columns[0],as_index=False
  2. 使用results.reset_index()

用於過濾,默認的行爲似乎是保持柱(見評論)。