为了账号安全,请及时绑定邮箱和手机立即绑定

如何查找 A 列中每个值的所有匹配项,该值也在 B 列中

如何查找 A 列中每个值的所有匹配项,该值也在 B 列中

狐的传说 2021-10-19 10:19:12
使用 Pandas,我试图在 A 列中找到某个值的最近重叠出现,该值也恰好在 B 列中(尽管不一定出现在同一行中);这将对 A 列中的所有行进行。我已经使用 n^2 解决方案完成了一些接近的事情(通过创建每列的列表并使用嵌套的 for 循环进行迭代),但如果可能的话,我想使用更快的方法;因为这需要在包含数万个条目的表中实现。(因此,矢量化解决方案将是理想的,但我更在寻找“正确”的方法来做到这一点。)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'])它应该返回如下内容: A_B_Dict = {'A': 1, 'B': 3, 'C':None', 'D':4}这样,在 B 列中发生的来自 A 列的最新观察(或所有观察)被存储为值,A_B_Dict其中的键A_B_Dict是在 A 列中观察到的原始值。
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

国际大学联盟


d=dict(zip(df.B,df.idx))

dict(zip(df.A,df.A.map(d)))

{'A': 1.0, 'B': 3.0, 'C': nan, 'D': 4.0}


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号