Как разбить строку по значению в фрейме данных?

У меня есть следующая таблица:

df = pd.DataFrame({'A': ['field_1', 'field_2'], 'B': [5, 1], 'C':['other', 'other']})

И я хочу разбить ее по значению в колнке В, чтобы получилось так:

df = pd.DataFrame({'A': ['field_1', 'field_1', 'field_1', 'field_1', 'field_1', 'field_2'], 'B': [1, 1, 1, 1, 1, 1], 'C':['other'] * 6})

введите сюда описание изображения

Есть ли какой либо встроенный метод которым можно это сделать? Или возможно это можно сделать через комбинацию таких методов?

Хотелось бы воспользоваться скоростью работы фреймворка, если это возможно.


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь DataFrame.explode():

res = df.assign(B=df["B"].map(lambda x: [1] * x)).explode("B")

результат:

In [21]: res
Out[21]:
         A  B      C
0  field_1  1  other
0  field_1  1  other
0  field_1  1  other
0  field_1  1  other
0  field_1  1  other
1  field_2  1  other
→ Ссылка