我有一个矩阵,其中的行是一些项目编号,列是某些功能的得分,称为score1,score2等。我想创建3个新列,分别称为out1,out2和out3;其中out1,out2或out3获得值1(score1),2(score2)或3(score3)。规则如下,请查看矩阵的示例图片 image of an example as I am not yet allowed to post pictures
这是一个玩具矩阵
df = pd.DataFrame({'items':['item1', 'item2', 'item3', 'item4', 'item-n'],
'score0':[11,2,3,10,10],
'score1':[6,4,6,6,9],
'score2':[9,8,6,8,8],
'score-n':[3,0,2,6,2]})
感谢您的帮助
答案 0 :(得分:0)
Stack Overflow不是为了解决您的家庭作业问题,而是要询问具体问题。无论如何,一个起点可能是删除“ items”列,并使用apply编写自己的书面功能:
def my_max(arr1d):
return np.argmax(arr1d)
dfs = df.drop(["items"], axis=1)
col1 = dfs.apply(my_max, axis=1)
这里只是用您自己的函数替换argmax。