我正在尝试在熊猫数据框中的给定不确定性范围内搜索匹配值。例如,如果我有一个数据框:
A B C
0 12 12.6 111.20
1 14 23.4 112.20
2 16 45.6 112.30
3 18 56.6 112.40
4 27 34.5 121.60
5 29 65.2 223.23
6 34 45.5 654.50
7 44 65.6 343.50
如何搜索与 112.6 +/-0.4 匹配的值,而无需创建冗长且困难的标准,例如:
TargetVal_Max= 112.6+0.4
TargetVal_Min= 112.6-0.4
基本上,我想创建一个“缓冲窗口”,允许返回与窗口匹配的所有值。我有不确定性包,但还没有让它像这样工作。
理想情况下,我希望能够返回在给定错误范围内与 C 和 B 中的值匹配的所有索引值。
编辑
正如@MaxU 所指出的,如果您知道确切的数字,则 np.isclose f(x) 效果很好。但是是否可以匹配一个值列表,例如,如果我有第二个数据帧并想查看一个数据帧中的 C 值是否在容差范围内与 C (第二个数据帧)的值匹配?我试图将它们放入一个列表并以这种方式进行操作,但是在尝试一次处理多个值时遇到问题。
TEST= Dataframe_2["C"]
HopesNdreams = sample[sample["C"].apply(np.isclose,b=TEST, atol=1.0)]
编辑 2
我通过尝试几种不同的解决方法发现了我可以做的:
TEST1= Dataframe_2["C"].tolist
for i in TEST1:
HopesNdreams= sample[sample["C"].apply(np.isclose,b=i, atol=1.0)]
这将返回给定列的命中。使用第一个答案中提出的逻辑,我认为这可以很好地满足我的需要。有没有我用这种方法看不到的挂断?
干杯并感谢您的帮助!