python - 根据多列的值填充一列
问题描述
我有以下数据框
df
A B C D
1 2 NA 3
2 3 NA 1
3 NA 1 2
A、B、C 和 D 是问题的答案。基本上,受访者将答案从 1 到 3 排序,这意味着一行不能有 2 个相同的值。我正在尝试创建一个新列,它是前 3 项内容的摘要,例如。
1st 2nd 3rd
A B D
D A B
C D A
这种格式将使我更容易得出结论,例如,这里是第三个最佳答案。
我没有找到任何方法来做到这一点。请问你能帮帮我吗?非常感谢!
解决方案
一种方法是使用argsort
和索引列:
pd.DataFrame(df.columns[df.values.argsort()[:,:-1]],
columns=['1st', '2nd', '2rd'])
1st 2nd 2rd
0 A B D
1 D A B
2 C D A
推荐阅读
- javascript - 如何使用javascript在脚本文件或views.py中运行python函数以不加载页面
- linux - Recv-Q 和 Send-Q 中的字节
- javascript - 如何在opencv JS中读取图像
- ios - UITableView 自定义插入动作按钮 onSwipe
- javascript - Vuetify:如何从数据表组件中移除这个特定的道具内容?
- php - 删除 wordpress 主题中特定滑块上的按钮
- bash - Bash 脚本在 bash 文件中不起作用,但确实粘贴到了命令行
- solr - SOLR 中的语法时态
- xaml - 如何在 ViewCell 中绑定数据网格
- css - Goolge Chrome Broswer 版本 69.0.3497.100 上的 CSS 线性渐变问题