擅长:python、mysql、java
<p>这里有一种使用<a href="https://pypi.org/project/networkx/" rel="noreferrer">^{<cd1>}</a>的方法,在这里我们可以找不到任何祖先,并得到相同的长度</p>
<pre><code>import networkx as nx
</code></pre>
<hr/>
<pre><code>G = nx.from_pandas_edgelist(df,"parent","child",create_using=nx.DiGraph())
f = lambda x: len(nx.ancestors(G,x))
df['level'] = df['child'].map(f)
</code></pre>
<hr/>
<pre><code>print(df)
child parent level
0 b a 1
1 c a 1
2 d b 2
3 e c 2
4 f c 2
5 g f 3
</code></pre>