使用 Pandas,我試圖在 A 列中找到某個(gè)值的最近重疊出現(xiàn),該值也恰好在 B 列中(盡管不一定出現(xiàn)在同一行中);這將對(duì) A 列中的所有行進(jìn)行。我已經(jīng)使用 n^2 解決方案完成了一些接近的事情(通過(guò)創(chuàng)建每列的列表并使用嵌套的 for 循環(huán)進(jìn)行迭代),但如果可能的話,我想使用更快的方法;因?yàn)檫@需要在包含數(shù)萬(wàn)個(gè)條目的表中實(shí)現(xiàn)。(因此,矢量化解決方案將是理想的,但我更在尋找“正確”的方法來(lái)做到這一點(diǎn)。)df['idx'] = range(0, len(df.index))A = list(df['r_A'])B = list(df['r_B'])A_B_Dict = {}for i in range(0, len(B)-1): for j in range(0, len(A)-1): if B[i] == A[j]: A_search = df.loc[df['r_A'] == A[j]].index A_B_Dict[B[i]] = A_search鑒于一些 df 像這樣:df = [[1, 'A', 'A'], [2, 'B', 'D'], [3, 'C', 'B'] [4, 'D', 'D'] ]df = pd.DataFrame(data, columns = ['idx', 'A', 'B'])它應(yīng)該返回如下內(nèi)容: A_B_Dict = {'A': 1, 'B': 3, 'C':None', 'D':4}這樣,在 B 列中發(fā)生的來(lái)自 A 列的最新觀察(或所有觀察)被存儲(chǔ)為值,A_B_Dict其中的鍵A_B_Dict是在 A 列中觀察到的原始值。
如何查找 A 列中每個(gè)值的所有匹配項(xiàng),該值也在 B 列中
狐的傳說(shuō)
2021-10-19 10:19:12