Pandas groupby(...)。mean()丢失键

时间:2015-04-14 10:54:23

标签: python pandas

我有数据框轮次(这是从另一个数据框中删除列的结果),具有以下结构(无法发布图片,抱歉):

----------------------------
|type|N|D|NATC|K|iters|time|
----------------------------
rows of data
----------------------------

我使用groupby所以我可以得到组的平均值,如下:

rounds = results.groupby(['type','N','D','NATC','K','iters']) results_mean = rounds.mean()

我得到了我想要的手段,但是我遇到了钥匙的问题。 _results_mean_ dataframe具有以下结构:

----------------------------
|    | | |    | |     |time|
|type|N|D|NATC|K|iters|    |
----------------------------
rows of data
----------------------------

唯一识别的关键是“时间”(我执行了results_mean.keys())。

我做错了什么?我该如何解决?

2 个答案:

答案 0 :(得分:4)

在汇总数据中,time是唯一的列。其他的是指数。

groupby有一个参数as_indexFrom the documentation

  

as_index 布尔值,默认为True

     

对于聚合输出,返回以组标签作为索引的对象。仅与DataFrame输入相关。 as_index = False实际上是“SQL风格”分组输出

因此,您可以通过调用

获得所需的输出
rounds = results.groupby(['type','N','D','NATC','K','iters'], as_index = False)
results_mean = rounds.mean()

或者,如果需要,您始终可以将索引转换为键by using reset_index。使用

rounds = results.groupby(['type','N','D','NATC','K','iters'])
results_mean = rounds.mean().reset_index()

也应该有所期望的效果。

答案 1 :(得分:0)

由于使用了dataframes's函数,我也遇到了丢失group_by()键的问题,而我发现该问题的答案是将数据框转换为CSV文件,然后读取该文件。