'Increase the values in a column values based on values in other column in pandas

I have my source data in the form of csv file as below:

id,col1,col2                
123,11|22|33||||||,val1|val3|val2           
456,99||77|||88|||||||||6|,val4|val5|val6|val7

I need to add a new column(fnlsrc) which will have the values based on values in Col2 and Col1, i.e if col1 has 9 values(separated with pipe) and col2 has 3 values(separated with pipe), then in fnlsrc column I have to load 9 values(separated with pipe) 3 set of col2(val1|val3|val2|val1|val3|val2|val1|val3|val2). Please refer the output below, which will help in understanding the requirement easily:

id,col1,col2,fnlsrc
123,11|22|33||||||,val1|val3|val2,val1|val3|val2|val1|val3|val2|val1|val3|val2
456,99||77|||88|||||||||6|,val4|val5|val6|val7,val4|val5|val6|val7|val4|val5|val6|val7|val4|val5|val6|val7|val4|val5|val6|val7

I have tried following code, but its adding only the one set:

zipped = zip(df['col1'], df['col2'])
for s,t in zipped:
    count = int((s.count('|') + 1)/(t.count('|') + 1))
    for val in range(count):
        df['fnlsrc'] = t


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source