我有一个如下数据框:
id sub_id others
NaN 10 xxx
10 11 xxx
10 13 xxx
10 15 xxx
11 12 xxx
11 16 xxx
13 14 xxx
15 17 xxx
12 20 xxx
16 55 xxx
16 85 xxx
14 19 xxx
14 43 xxx
17 87 xxx
17 91 xxx
比如说,例如id == 10是这个数据帧中的老板。 我有一个级别列表:levels = [a,b,c,d]。在我的级别列表中,a表示boss,b表示由boss管理的级别,c是由b管理的级别,等等。
我想要做的是我想看看哪个id管理sub_ids并基于它创建一个新列,该列说明sub_id对应的级别。
我希望我的最终数据框如下所示:
id sub_id others level
NaN 10 xxx a
10 11 xxx b
10 13 xxx b
10 15 xxx b
11 12 xxx c
11 16 xxx c
13 14 xxx c
15 17 xxx c
12 20 xxx d
16 55 xxx d
16 85 xxx d
14 19 xxx d
14 43 xxx d
17 87 xxx d
17 91 xxx d
我目前正在做以下事情:
pointer_subid = []
loop_subid = []
data['level'] = np.nan
boss = data[data.id.isnull()]
data['level'][(data['id'].isnull())] = 'a'
pointer_subid.append([boss['sub_id'])
levels = ['b', 'c', 'd']
k=0
while k < len(levels):
for i in range(0, len(pointer_subid)):
for j in range(0,len(data)):
data['level'][(data['id'][j] == i)] = levels[k]
loop_subid.append(data['sub_id'][j])
del pointer_subid
pointer_subid = list(loop_subid)
del loop_subid
loop_subid = []
k = k+1
我不确定上面的代码是否有效。它现在一起跑了几个小时,我也无法检查它是否给了我想要的结果。还有其他有效的方法吗?
任何帮助将不胜感激。提前谢谢..
答案 0 :(得分:1)
你可以做这样的事情
<div class="section top"></div>
<div class="section middle"></div>
<div class="section bottom"></div>