Если я правильно понимаю вашу проблему, вы можете использовать этот MCVE для анализа.
df = pd.DataFrame({'ID':[1],'string1':['A,B,C'], 'string2':['X,Y,Z']}, index=[0])
df_joined = df.join([df['string1'].str.split(',', expand=True).add_prefix('s1_'),
df['string2'].str.split(',', expand=True).add_prefix('s2_')])
pd.wide_to_long(df_joined, ['s1','s2'], 'ID', 'No', sep='_').reset_index()
Вывод:
ID No string1 string2 s1 s2
0 1 0 A,B,C X,Y,Z A X
1 1 1 A,B,C X,Y,Z B Y
2 1 2 A,B,C X,Y,Z C Z