<p>这是另一种方法。GetParent()返回一个函数,该函数跟踪每个级别的最新符号,并返回当前级别的父级。把它用在熊猫。应用()使用父符号创建列。你知道吗</p>
<pre><code>def GetParent():
# 0 1 2 3 4 5 6 7 8 9 10
hierarchy = [0, 0, 0, 0, 2, 4, 0, 5, 7, 8, 9]
parent = [' ']*11
def func(row):
#print(row)
symbol,level = row[['SYMBOL', 'level']]
parent_level = hierarchy[level]
parent_symbol = parent[parent_level]
parent[level] = symbol
return pd.Series([parent_symbol], index=['parent'])
return func
# create a column with the parents
parents = df.apply(GetParent(), axis=1)
df = pd.concat([df, parents], axis=1)
df
</code></pre>
<p>输出:</p>
<pre><code> SYMBOL level na ao parent
0 A 2 True False
1 A01 4 True False A
2 A01B 5 True False A01
3 A01B 1/00 7 False False A01B
4 A01B 1/02 8 False False A01B 1/00
5 A01B 1/022 9 False False A01B 1/02
6 A01B 1/024 9 False False A01B 1/02
7 A01B 1/026 9 False False A01B 1/02
8 A01B 1/028 9 False False A01B 1/02
9 A01B 1/04 9 False False A01B 1/02
10 A01B 1/06 8 False False A01B 1/00
11 A01B 1/065 9 False False A01B 1/06
12 A01B 1/08 9 False False A01B 1/06
...
</code></pre>