首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫数据处理

熊猫数据处理
EN

Stack Overflow用户
提问于 2020-03-25 20:01:21
回答 1查看 34关注 0票数 0

我有一个矩阵,其中行是一些项目号,列是一些名为score1、score2等特性的分数。我想创建三个新列,名为out1、out2和out3;其中out1、out2或out3的值为1(score1)、2(score2)或3(score3)。规则如下,请查看矩阵一个例子的图片,因为我还不能发布图片。的示例图

  1. 项目得分最高的列将放置在out1中。
  2. 如果有领带,没有最高的,那么所有的都是空的。
  3. 如果最高分和第二最高分之间的差值小于或等于2,则将该分数放在out2中。
  4. 如果out2的分数相等,则out2和out3将为空。
  5. 如果第二最高分和第三最高分之间的差值小于2,则将该分数放在out3中。
  6. 如果out3的得分是相等的,那么out3将为空

这是一个玩具矩阵

代码语言:javascript
复制
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]})

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-03-25 20:37:11

堆叠溢出不是为了解决你的家庭作业问题,而是为了询问细节。无论如何,一个起点可以是删除"items“列并使用您自己编写的函数:

代码语言:javascript
复制
def my_max(arr1d):
    return np.argmax(arr1d)

dfs = df.drop(["items"], axis=1)
col1 = dfs.apply(my_max, axis=1)

这里只需将argmax替换为您自己的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60856530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档