我有这样的数据,
所以我将每个评级(星星)的百分比存储到 pandas 中,如下所示
现在我想获取最大值的列名,例如
1_star 2_star 3_star 4_star 5_star
0.023 0.112 0.474 0.316 0.075
## returns 3_star
我该怎么做?
我发现一个答案非常适合我的情况,Pandas second largest value's column name ,但似乎太复杂了。毕竟我可以通过df.max()
获取最大值,为什么获取最大值的列名这么复杂?
最佳答案
看来你需要 Series.idxmax
与 iloc
选择系列
行:
print (df)
1_star 2_star 3_star 4_star 5_star
0 0.023 0.112 0.474 0.316 0.075
print (df.iloc[0].idxmax())
3_star
如果需要所有DataFrame
的值,请使用DataFrame.idxmax
- 输出是系列
:
print (df.idxmax(axis=1))
您还可以按 filter
仅过滤
包含_star
文本的列:
print (df.filter(like='_star').idxmax(axis=1))
关于python - Pandas:找到最大值的列名,我需要过滤带有星号文本的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291442/