gpt4 book ai didi

python - 多索引 pandas 数据帧的最高和最低列值

转载 作者:行者123 更新时间:2023-12-01 08:57:26 26 4
gpt4 key购买 nike

我有一个多索引数据框,我需要获得最高和最低分数作为数据框

               score
date asset
01-01-16 XO 8
VXO 3
NP 4
GE 2
LE 1

import pandas as pd
pdf =pd.DataFrame({'date':['01-01-16','01-01-16','01-01-16','01-01-16','01-01-16'],'asset':["XO","VXO","NP","GE","LE"],'score':[8,3,4,2,1]})
cdf = pdf.set_index(['date', 'asset'])
cdf

我尝试了 cdf[(cdf.score < 2) & (cdf.score >4) ] ,它不返回任何值。

预期输出:

              score
date asset
01-01-16 XO 8
LE 1

最佳答案

使用DataFrame.iloc按位置选择 - 第一行和最后一行:

cdf = cdf.sort_values('score', ascending=False).iloc[[0, -1]]  
print (cdf)
score
date asset
01-01-16 XO 8
LE 1

编辑 - 您还可以通过 Series.idxmax 选择索引值和 Series.idxmin :

cdf = cdf.loc[[cdf.score.idxmax(), cdf.score.idxmin()]]  
print (cdf)
score
date asset
01-01-16 XO 8
LE 1

如果可能,多个最大值和最小值:

cdf = cdf[(cdf.score == cdf.score.max()) | (cdf.score == cdf.score.min()) ] 
print (cdf)
score
date asset
01-01-16 XO 8
LE 1

关于python - 多索引 pandas 数据帧的最高和最低列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52700528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com