Mic*_*lly 17 python python-2.7 pandas
我有一个用户定义的数字,我想与数据帧的某一列进行比较.
我想返回一个数据帧的行,它包含(在df的某一列中,比如df.num)与给定数字x最接近的5个数字.
任何关于没有循环的最佳方法的建议将非常感激.
DSM*_*DSM 25
我想你可以使用这个argsort方法:
>>> df = pd.DataFrame({"A": 1e4*np.arange(100), "num": np.random.random(100)})
>>> x = 0.75
>>> df.ix[(df.num-x).abs().argsort()[:5]]
A num
66 660000 0.748261
92 920000 0.754911
59 590000 0.764449
27 270000 0.765633
82 820000 0.732601
>>> x = 0.33
>>> df.ix[(df.num-x).abs().argsort()[:5]]
A num
37 370000 0.327928
76 760000 0.327921
8 80000 0.326528
17 170000 0.334702
96 960000 0.324516
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11779 次 |
| 最近记录: |