根据Pandas数据框中的权重计算得分

2024-09-29 21:43:39 发布

您现在位置:Python中文网/ 问答频道 /正文

其思想是根据值对行进行排序,这样最大值为1的行将获得最高分数,我将在后面使用它来sort_values和{}。。。也叫加权和。。。在

数据帧如下:

    ID  SINNOUVEAU  PERTETOTAL  CHANGGARAN  SOCLOCATIO  SINISAMEDI  NOMASCONDU   INIREPET
0    1           1           1           0           0           0           1          0
1    1           0           1           0           0           0           1          0
2    1           1           0           1           0           0           1          0
0    2           1           1           1           0           0           1          0
1    2           0           1           0           0           0           1          0
2    2           1           0           1           0           0           1          0

所有权重均为1,但CHANGGARAN将设置为2。在

以下是要计算分数的第一行示例: 1x1 + 1x1 + 0x2 + 0x1 + 0x1 + 1x1 + 0x1=3

最后,这是排序前的预期分数:

^{pr2}$

谢谢!在


Tags: 数据id排序sort分数思想values行将
2条回答

我觉得我们可以在这里使用dot

a=np.ones(df.shape[1])
a[0]=0
a[3]=2
df.dot(a)
0    3.0
1    2.0
2    4.0
0    5.0
1    2.0
2    4.0
dtype: float64
#df['SCORE']=df.dot(a)

对特定列使用replace,然后计算列之间的和。在

# Drop "ID" first because it is not a part of the sum
df.replace({'CHANGGARAN': {1: 2}}).drop('ID', 1).sum(axis=1)

0    3
1    2
2    4
0    5
1    2
2    4
dtype: int64

将结果重新分配给列,然后使用它对数据帧进行排序:

^{pr2}$

相关问题 更多 >

    热门问题