我试图通过沿单个维度 d1 分组并报告 d1 的每个元素的摘要统计信息来总结数据框。我特别对许多指标的前 n 个(索引和值)感兴趣。
我想为 d1 的每个元素生成一行。
假设我有两个维度 d1、d2 和 4 个指标 m1、m2、m3、m4
1) 对于每个指标 m1 - m4,按 d1 分组并查找顶部 n d2 和指标值的建议方式是什么。
在 Wes 的书《Python for Data Analysis》中他建议(第 35 页)
def get_top1000(group):
return group.sort_index(by='births', ascending=False)[:1000]
grouped = names.groupby(['year', 'sex'])
top1000 = grouped.apply(get_top1000)
这仍然是推荐的方式吗(我只对 1000 个中的前 5 个 d2 以及多个指标感兴趣)
2)现在下一个问题是我想旋转前 5 个元素(即 d1 的每个元素都有一行)
因此对于维度 d1、d2 和公制 m1,结果数据框应如下所示:
索引 d1 以及 d2 的前 5 个值和 m1 的对应值的列
d1 d2-1 d2-2 d2-3 d2-4 d2-5 m1-1 m1-2 m1-3 m1-4 m1-5
....
因此,要进行旋转,我必须沿着 d2 创建排名(即 1 到 5 - 这是我的列字段)。如果我总是有 5 个条目,但对于给定的 d1 值,偶尔 d2 的元素少于 5 个,这会很容易。
那么有人可以建议如何将排名添加到分组中,以便我有正确的列索引来执行旋转