Использование -
def split_cols(x):
for item in x['overall'].split('/'):
if item.startswith('class'):
pairs = item.split('-')
x[pairs[0]] = pairs[1]
return x
df.apply(split_cols, axis=1)
Выход
class1 class2 class3 overall
0 10 11 13 class1-10/class2-11/class3-13
1 23 22 31 class3-31/class2-22/class1-23
2 NaN NaN NaN abc/def/xyz/prq
Пояснение
Функция split_cols()
позаботитсясоздания дополнительных столбцов.
Сначала разбивается на /
, проверяет наличие class
в разбиениях
Затем снова разбивается на -
, создает столбец спервое разделение и значение для этого столбца как второе разделение.
Затем все это передается через функцию apply