<p>这不是一个精确的解决方案,但它只是一个例子,告诉你方向。在</p>
<p>使用递归方法:</p>
<pre><code>import pandas as pd
from collections import defaultdict
df = pd.DataFrame({'COL_A': ['B1011','B1012','B1013','B1014','B1015','B1018'],
'COL_B': ['B1012','B1014','B2017','B1018','B2021','B2022']})
a=[i for i in df['COL_A']]
b=[i for i in df['COL_B']]
final_result=[]
def main_function(bn):
dict_1={}
path = []
if not bn:
return 0
else:
value_2 = []
def hello(a_, b_, c):
if not c:
return 0
else:
aa = a_[c[0]]
bb = b_[c[0]]
if bb in a_:
value = []
value.append(aa)
if bb not in path:
path.append(bb)
bn = a_.index(bb)
cn = b_[bn]
if cn not in path:
path.append(cn)
value_2.extend(value)
return hello(a_, b_, c[1:])
else:
if "{}".format({aa:bb}) not in final_result:
final_result.append("{}".format({aa:bb}))
return hello(a_, b_, c[1:])
hello(a, b, bn)
if path:
dict_1[value_2[0]]=path
if dict_1 not in final_result:
final_result.append(dict_1)
main_function(bn[1:])
main_function(list(range(0,len(a))))
print(final_result)
</code></pre>
<p>根据需要格式化结果。在</p>
<p>输出:</p>
^{pr2}$