
Код: Выделить всё
df = pd.DataFrame({'qty': [10,7,2,1],
'status 1': [5,2,2,0],
'status 2': [3,2,0,1],
'status 3': [2,3,0,0]
})
Таким образом, количество = сумма значений статуса 1,2,3.
I хотелось бы:
- Дублировать каждую строку столбца «количество»
- Затем отредактируйте 3 статуса (или обновите новый столбец), чтобы получить только 1. статус.

Изменить: порядок не важен, но мне нужно будет сохраните другие столбцы моего первоначального df.
Мое (неполное) решение, поэтому далеко - я нашел способ дублировать строки, используя это:
Код: Выделить всё
df2= df2.loc[df2.index.repeat(df2['qty'])].reset_index(drop=True)
Нужно ли мне использовать цикл for для заполнения статуса?< /p>
Должен ли я выполнить это преобразование за 1 или 2 шага?
Примерно: для каждой начальной строки n первых строк принимают первый статус, где n — значение статуса 2....
Вывод может возможно, выглядит так:

Edit1: Спасибо за ваши ответы!
Последний вопрос: теперь я пытаюсь интегрировать это в свой фактический файл df. Как лучше всего применить эти методы к моему df, который содержит много других столбцов?
Я отвечу на свой последний вопрос:
- Разделить df на две части: dfstatus и dfwithoutstatus, сохранив столбец qty в обоих
- Примените один из ваших методов к dfstatus
- Примените мой метод к dfwithoutstatus (простое дублирование)
- Объединить в индекс
Лучший
Подробнее здесь: https://stackoverflow.com/questions/751 ... w-column-b