我的数据框 rounds
(这是从另一个数据框中删除一列的结果)具有以下结构(不能发布图片,抱歉):
----------------------------
|type|N|D|NATC|K|iters|time|
----------------------------
rows of data
----------------------------
我使用 groupby
这样我就可以得到组的平均值,如下所示:
rounds = results.groupby(['type','N','D','NATC','K','iters'])
results_mean = rounds.mean()
我得到了我想要的方法,但我的 key 有问题。 results_mean
数据框具有以下结构:
----------------------------
| | | | | | |time|
|type|N|D|NATC|K|iters| |
----------------------------
rows of data
----------------------------
唯一识别的键是time
(我执行了results_mean.keys()
)。
我做错了什么?我该如何解决?
最佳答案
在您的聚合数据中,time
是唯一的一列。其他的是指数。
groupby
有一个参数as_index
。 From the documentation :
as_index : boolean, default True
For aggregated output, return object with group labels as the index. Only relevant for DataFrame input. as_index=False is effectively “SQL-style” grouped output
所以你可以通过调用得到想要的输出
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()
也应该有预期的效果。
关于python - Pandas groupby(...).mean() 丢失 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29625531/