如何通过在python数据框中逐行匹配元素来追加到列表中

2024-04-26 10:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

python新手,我的数据框架如下:

A         B   
10      [4,12,20]
12      [20,15,33,65]
14      [5,11,18] 

我的目标是:

  1. 循环浏览列B中的列表
  2. 检查A列中该列表的值是否存在于B列下的任何其他列表中
  3. 如果找到匹配项(例如:行0检测到A Value: 10存在于行1B
  4. 将行-列B组合在一起(例如:0和行1B并将其保存在列C下,忽略重复值)

输出:

A         B                    C
10      [4,12,20]       [4,12,20,33,65]
12      [20,10,33,65]   [20,4,12,33,65]
14      [5,11,18]       [5,11,18]

谢谢


Tags: 数据框架目标列表value新手
1条回答
网友
1楼 · 发布于 2024-04-26 10:11:50
A = [10,12,14]
B = [[4,12,20], [20,10,33,65], [5,11,18]]
C = B[:]
d=dict()
for z in zip(A,B):
  d[z[0]] = z[1]

for i in range(len(B)):
  match = set(A) & set(B[i])
  if match:
    for m in match:
      C[i] = (list(set(C[i]) | set(d[m])))

print(C)  # [[33, 4, 65, 20, 10, 12], [33, 20, 65, 4, 10, 12], [5, 11, 18]]

相关问题 更多 >