Вы можете просто разделить, используя str.split('>')
и развернуть фрейм данных
import pandas as pd
d = {'col1': ['a>b>c'],'col2':['a>b>c']}
df = pd.DataFrame(data=d)
print(df)
col='col1'
#temp = df[col].str.split('>',expand=True).add_prefix(col)
temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
temp.merge(df,left_index=True,right_index=True,how='outer')
Из:
col1 col11 col12 col13
0 a>b>c a b c
Incase, если вы хотите сделать это на нескольких столбцах, вы также можете взять
for col in df.columns:
temp = df[col].str.split('>',expand=True).rename(columns=lambda x: col + str(int(x)+1))
df = temp.merge(df,left_index=True,right_index=True,how='outer')
Из:
col21 col22 col23 col11 col12 col13 col1 col2
0 a b c a b c a>b>c a>b>c