擅长:python、mysql、java
<p>嗨,谢谢你的澄清,我有一个递归函数的解决方案,你可以试试。对于大数据帧可能效率不高,但似乎效果良好。
该函数返回一个列表,但您可以编辑结果序列,以将该列表联接为字符串。在</p>
<pre><code>def get_related(df1, related):
# get directly related values
next_vals = df.loc[df['df1'] == df1, 'df2'].values.tolist()
# remove links to self (will cause recursion issues)
next_vals = list(set(next_vals) - set([df1]))
# add to running list
related = related + next_vals
# continue to next level
if any(next_val in df['df1'].unique() for next_val in next_vals):
for next_val in next_vals:
related = related + get_related(next_val, related)
# get unique list
return list(set(related))
df['df1'].apply(lambda x: get_related(x, []))
</code></pre>