Python 数据框:识别系列的百分位值,获取相应的观察值';其他系列的s值

Python 数据框:识别系列的百分位值,获取相应的观察值';其他系列的s值,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个由两列组成的熊猫数据帧:path和loss path值是0到300之间的整数 loss值是带有大量小数位的浮点数 我想在损失中识别百分位值,然后获取相应的路径值。我使用以下代码来确定百分位数: c80 = np.percentile(df['loss']], 80) 然后,我尝试了许多失败的解决方案,最近一次是: c80_path = df[df['loss'] == c80].path 及 打印结果c80\u路径值返回“Series([],Name:dtype:int64)”

我有一个由两列组成的熊猫数据帧:
path
loss

  • path
    值是0到300之间的整数
  • loss
    值是带有大量小数位的浮点数
我想在
损失
中识别百分位值,然后获取相应的
路径
值。我使用以下代码来确定百分位数:

c80 = np.percentile(df['loss']], 80)
然后,我尝试了许多失败的解决方案,最近一次是:

c80_path = df[df['loss'] == c80].path

打印结果
c80\u路径
值返回
“Series([],Name:dtype:int64)”

我期望一个介于0和300之间的整数值。有什么想法吗?

百分位数可以(在这种情况下将)是一个不在<代码>损失列中的值。因此,
df['loss']==c80
不会产生任何结果。要找到最接近的值,可以尝试以下方法:

c80_path=df.iloc[(df['loss']-c80.abs().argsort()[0]['path']
c80_path = df.loc[df['loss'] == c80,'path']