我有两个数据框:
\n\n df1<- A C\n 7.629 1\n 5.227 2\n 5.472 3\n 5.386 4\n 5.445 5\n\n A B \n df2<- 7.634 10.0\n 7.732 30.0\n 5.223 33.0\n 5.479 22.0\n 5.390 49.0\n 5.439 53.0\nRun Code Online (Sandbox Code Playgroud)\n\n我想对 A 列执行内部合并,容差值为 \xc2\xb10.01 以获得结果数据:
\n\ndf3<- A B C \n 7.634 10.0 1\n 5.223 33.0 2\n 5.479 22.0 3\n 5.390 49.0 4 \n 5.439 53.0 5 \nRun Code Online (Sandbox Code Playgroud)\n\n这可以吗?
\n\n(请注意,df3 的 A 列具有从 df2 复制的值)
\n我正在使用这行代码来确定大型数据框 df 列中的值,这些值接近 A 的值(在容差范围内):
df[df[['column']].apply(numpy.isclose, b=A, atol=0.004).any(1)]
Run Code Online (Sandbox Code Playgroud)
但是,在某些情况下,A 可以有多个值(即 2-4 个不同的值)。有没有一种方法可以让我遍历 A 的每个值来测试每个值?我知道上面显示的代码行只会让我使用 A,如果它有一个分配给它的值。
这方面的一个例子是(使用更短的数据帧):
column1 column2
0 0.902062 5.8
1 0.557808 3.3
2 0.655985 3.9
3 0.832471 4.1
4 0.199884 1.2
5 0.127254 1.8
6 0.771439 4.9
7 0.432289 2.8
8 0.385282 2.2
9 0.783643 3.7
Run Code Online (Sandbox Code Playgroud)
其中 A 具有值:
A=[0.432, 0.783, 0.902]
Run Code Online (Sandbox Code Playgroud)
但在另一个示例中,它可能具有以下值:
A=[0.558, 0.002]
Run Code Online (Sandbox Code Playgroud)
(这里很明显,数据框中的任何内容实际上都不会匹配 0.002)。
我想要一些代码,它能够从数据框中返回行,其中 column1 值与所有示例的 A 值匹配,而不管不同 A 值的数量如何(如果没有匹配,则返回“NaN”反而)。