随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

df找出每行最大值所在的列名是什么

我们想要按照每行去找出TOPn个值,比如说,每个列名是每个学科的名字,每一行代表一个学生,我们想找出每个学生前3高分数是多少,又或者是前3高分数的学科是什么,那么就可以这样去是实现

#找出分数
x=chedai_copy[tree_col].iloc[0:1,:].values    
x[0,np.argsort(x)][0,-3:]

#找出学科
x=chedai_copy[tree_col].iloc[0:1,:].values    
np.argsort(x)[0,-3:]

array([0.01078317, 0.06371682, 0.10790607])

array([14,  8, 16], dtype=int64)

想找找出全部的,可以自己写个循环

 

2021.11.24号补充下面的:

如下图:

 

 我要想找出每个学生最高分的学科是什么,也就是上面图片中最高分学科这一列

先构造什么的数据

复制代码
#建表语句
data_xueke = pd.DataFrame([[1,100,90,80],[2,90,100,80],[3,80,90,100]])
data_xueke.columns = ['学号','语文','数学','英语']

#保存最高分学科的index
l = []
for i in range(0,len(data_xueke)):
    x=data_xueke.iloc[i:i+1,1:].values    
    l.append(list(np.argsort(x)[0,-1:])[0])

#将最高学科拿出来
l1=[]
for i in l:
    l1.append(data_xueke.columns[i+1])
    
data_xueke['最高分学科'] = l1

#输出结果看看
data_xueke
复制代码

学号 语文 数学 英语 最高分学科
0 1 100 90 80 语文
1 2 90 100 80 数学
2 3 80 90 100 英语

 

posted on   小小喽啰  阅读(427)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示