python输入数字选取中间值_python – 如何在Pandas系列中找到输入数字中最接近的值?...

我见过:

这些与香草Python有关,而不是熊猫.

如果我有这个系列:

ix num

0 1

1 6

2 4

3 5

4 2

我输入3,我怎样才能(有效地)找到?

>如果在系列中找到,则索引为3

>如果在系列中找不到,则低于和高于3的值的索引.

IE浏览器.使用上面的系列{1,6,4,5,2}和输入3,我应该得到带有索引(2,4)的值(4,2).

解决方法:

您可以使用argsort()之类的

比如说,输入= 3

In [198]: input = 3

In [199]: df.ix[(df['num']-input).abs().argsort()[:2]]

Out[199]:

num

2 4

4 2

df_sort是具有2个最接近值的数据帧.

In [200]: df_sort = df.ix[(df['num']-input).abs().argsort()[:2]]

对于索引,

In [201]: df_sort.index.tolist()

Out[201]: [2, 4]

对于价值观,

In [202]: df_sort['num'].tolist()

Out[202]: [4, 2]

细节,对于上面的解决方案df是

In [197]: df

Out[197]:

num

0 1

1 6

2 4

3 5

4 2

标签:ranking,python,pandas,dataframe

来源: https://codeday.me/bug/20190918/1811884.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值