import numpy as np
# Create two sample dataframes
df1 = np.array([[0.000000,0.000000,0.000000],
[0.090000,0.000000,0.000000],
[0.190000,0.000000,0.000000],
[0.280000,0.000000,0.000000],
[0.380000,0.000000,0.000000],
[0.470000,0.000000,0.000000],
[0.570000,0.000000,0.000000],
[0.660000,0.000000,0.000000],
[0.760000,0.000000,0.000000],
[0.850000,0.000000,0.000000]])
df2 = np.array([[0.470000,0.000000,0.000000],
[0.570000,0.000000,0.000000],
[0.660000,0.000000,0.000000],
[0.760000,0.000000,0.000000],
[0.850000,0.000000,0.000000]
])
df3 = np.where(np.isclose(df1[:, np.newaxis], df2))[0]
print(df3)
我想找到df2在df1中的位置,正确答案应该是[5, 6, 7, 8, 9],但Python输出的结果是[0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9],这个结果没有意义。我该如何修改代码才能正确找到df2在df1中的位置?
isin
函数将数组扁平化,因此您可以对df2
进行洗牌并获得相同的结果。不确定这是否是预期的逻辑。 - undefined