IIUC,你可以
-
检查的每个元素
df1
Rule
柱
isin
您的规则列表。
-
然后循环并重复的名称
df2
Name
列,具体取决于所包含规则的长度。
-
最后有条件地将重复名称分配给
数据流1
规则
柱
lst = [4,5,6,10,11,12]
m = df1['Rule'].isin(lst)
df1.loc[m, 'Name'] = (df2['Name'].tolist() * (m.sum()//len(df2['Name']) + 1))[:m.sum()]
print(df1)
Rule Name
0 12 Adams
1 9 Nan
2 7 Nan
3 1 Nan
4 3 Nan
5 2 Nan
6 4 Baker
7 6 Clark
8 9 Nan
9 4 Davis
10 1 Nan
11 4 Adams
12 5 Baker
13 2 Nan
14 11 Clark
15 6 Davis
16 9 Nan
17 2 Nan
18 10 Adams
19 3 Nan
20 10 Baker
21 3 Nan
22 1 Nan
23 4 Clark
24 4 Davis
25 3 Nan
26 7 Nan
27 7 Nan
28 12 Adams