我试图在pandas数据帧中的给定不确定性范围内搜索匹配值。例如,如果我有一个数据帧:
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的值,而不必创建一个冗长而困难的条件,例如:
^{pr2}$基本上,我想创建一个“缓冲窗口”,允许返回与窗口匹配的所有值。我有不确定因素的一揽子计划,但还没有像现在这样运作。在
最理想的情况是,我希望能够返回在给定误差范围内与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)]
这将返回给定列的命中率。使用第一个答案中的逻辑,我认为这将非常适合我所需要的。这种方法有什么我看不到的问题吗?在
干杯,谢谢你的帮助!在
使用^{} :
IIUC您可以使用np.isclose()函数:
相关问题 更多 >
编程相关推荐