如何计算每个项目的平均指数位置

问题描述 投票:2回答:2

我正在尝试通过pandas数据框中的多个类别来估计项目的平均排名,但不知道如何执行此操作

假设我们有下一个数据框,可以对不同类别的项目进行评级。这些项目已按每列中降序项目的分数进行排序。

Index Safety Performance Capability

  0   item_1   item_3      item_1
  1   item_3   item_2      item_2
  2   item_4   item_1      item_3
  3   item_2   item_4      item_4

我需要的是基于所有类别中的索引的项目的总体评级,因此在这种情况下整体看起来像这样:

Total

item_1
item_3
item_2
item_4
python pandas
2个回答
1
投票

如果权重是index使用melt groupbymean索引

s=df.reset_index().melt('Index').groupby('value')['Index'].mean().sort_values()
s
Out[14]: 
value
item_1    0.666667
item_3    1.000000
item_2    1.666667
item_4    2.666667
Name: Index, dtype: float64
df['Total']=s.index

1
投票

stack + groupby + sum的另一个选择(也可以使用像wen的mean

df.set_index('Index').stack().reset_index().groupby(0).Index.sum().sort_values()

输出

item_1    2
item_3    3
item_2    5
item_4    8
Name: Index, dtype: int64
© www.soinside.com 2019 - 2024. All rights reserved.