gpt4 book ai didi

python - 从给定索引查找最近的非零对

转载 作者:行者123 更新时间:2023-12-01 08:53:20 37 4
gpt4 key购买 nike

我有一个数据框-

df = pd.DataFrame({'A':[1,1,0,0,0,0,1,1,0],'B':[0,0,0,0,1,1,0,0,0]})

现在我想计算 A 列中 1,1 与 B 列中 0110 模式的最近出现次数。我有 0110(colB) 中第 1 个 1 的索引,这里是 4,我得到的答案是 -2,因为列 A 中的对 11(索引 6,7)落后 2 个索引。

我对010图案的尝试-

anchor = index_value
hnops = min((anchor - df[df.A != 0].index), key=abs)

最佳答案

我认为这最好用 numpy 列表理解来完成:

Apos = [i for i in range(len(df.A)-1) if list(df.A[i:i+2]) == [1,1]]
Bpos = [i+1 for i in range(len(df.B)-3) if list(df.B[i:i+4]) == [0,1,1,0]]

Apos, Bpos
>>> ([0, 6], [4])

然后就可以从Apos中找到最接近的到Bpos中每个元素的最小值

diff = [] 
for i in range(len(Apos)):
index = np.argmin(np.abs(np.asarray(Bpos) - Apos[i]))
answer = Bpos[index] - Apos[i]
diff.append(answer)

diff
>>> [4, -2]

关于python - 从给定索引查找最近的非零对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52958764/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com