我试图通过沿单个维度 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 个。
所以有人可以建议如何为分组添加排名,以便我有正确的列索引来执行旋转