Я хотел бы реплицировать все строки в моем DataFrame на основе значения данного столбца в каждой строке, а затем индексировать каждую новую строку. Предположим, у меня есть:
Column A Column B
T1 3
T2 2
Я хочу, чтобы результат был:
Column A Column B Index
T1 3 1
T1 3 2
T1 3 3
T2 2 1
T2 2 2
Мне удалось что-то подобное с фиксированными значениями, но не с помощью информации, найденной в столбце. Мой текущий рабочий код для фиксированных значений:
idx = [lit(i) for i in range(1, 10)]
df = df.withColumn('Index', explode(array( idx ) ))
Я пытался изменить:
lit(i) for i in range(1, 10)
до
lit(i) for i in range(1, df['Column B'])
и добавьте его в мою функцию array ():
df = df.withColumn('Index', explode(array( lit(i) for i in range(1, df['Column B']) ) ))
но это не работает (TypeError: объект 'Column' не может быть интерпретирован как целое число).
Как мне это реализовать?