Дублируйте строку в кадре данных Pandas на основе условия, затем обновите новый столбец на основе условия.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Дублируйте строку в кадре данных Pandas на основе условия, затем обновите новый столбец на основе условия.

Сообщение Anonymous »

У меня есть фрейм данных, который выглядит так:
Изображение

Код: Выделить всё

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).
Таким образом, количество = сумма значений статуса 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»