在列中的某个值附近选择最接近的值

时间:2019-04-18 17:54:41

标签: pandas select conditional-statements

我有以下df,我需要找到等于或最接近列值660的所有值。 详细地说,这意味着我必须以某种方式遍历列值以找到所有这660个或最接近的值。列值中的值在1到(范围不同)的范围内,到达末尾时,值又从1开始。最后,我必须选择值== 660(或最接近)的所有其他列的整行)。我或多或少有一个'helper'列辅助程序,其值在1到结束范围内具有相同的值。获得结果可能会有所帮助(列帮助始终为0或1)。这是df示例:

helper      value
0         1
.
.
.
0       647
0       649
0       652  
0       654
0       656
0       659
0       661
0       663 
0       665
0       667
0       669
0       672
0       674
0       676
0       678
0       681
.
.
.
0       1000
1       1
.
.
.
1       647
1       649
1       652
1       654
1       656
1       659
1       661
1       663
1       665
1       667
1       669
1       672
1       674
1       676
1       678
1       681
.
.
1       1500
0       1
.
.
.
0       645
0       647
0       650
0       652
0       654
0       656
0       658
0       661
0       663
0       665
0       667
0       669
0       672
0       674
0       676
0       679
.
.
.
0       980

感谢您的帮助或提示!

1 个答案:

答案 0 :(得分:0)

没有足够的信息来提供正确的答案。数据框的大小是多少?您最近的意思是什么?可以通过对熊猫系列应用遮罩来解决“ where value == 660”的问题。

应该像df = df[(df['value'] == 660)]这样。

如果您有一系列数字,则可以使用布尔运算符作为掩码:

mask = df.value > 650 & df.value < 670
df = df[mask]

让我知道这是否是您想要的