У меня есть dataframe (df) с 10 столбцами. Индекс имеет много разных дат, однако есть несколько идентичных дат (и сортируется по дате). Кроме того, важными столбцами для этой проблемы являются df ['Weight'] и df ['Test'].Создание нового столбца на основе корректировки весов из других столбцов
Вот пример данных с 2-мя колонками только 1 значение индекса (1/21/2017), на самом деле есть несколько дат с несколькими весами и т.д.
Weight Test
1/21/2017 0.1 NaN
1/21/2017 0.04 0.04
1/21/2017 0.03 Nan
1/21/2017 0.02 Nan
1/21/2017 0.2 0.2
1/21/2017 0.001 Nan
1/21/2017 0.1 0.1
1/21/2017 0.21 0.21
1/21/2017 0.003 Nan
1/21/2017 0.01 0.01
1/21/2017 0.04 0.04
1/21/2017 0.005 Nan
1/21/2017 0.05 0.05
1/21/2017 0.1 Nan
1/21/2017 0.091 Nan
ФР [ 'Вес '] добавляет до 1 для определенного индекса, и это верно для каждой уникальной даты индекса.
Я создал тестовую колонку, которая показывает только вес, если условие выполнено.
Теперь я пытаюсь создать столбец df ['скорректированный вес "], который будет смотреться в столбце Test, и если есть Nan, он умножит вес, который находится в df [' Weight '], на 0,75 и назначит это к df ['adjust_weight'], а затем остальные записи, в которых df ['Test'] не нан для конкретной даты, весы df ['Test'] должны корректироваться вверх пропорционально и присваиваться df [' скорректированный вес '], поэтому сумма df [' скорректированный вес '] для любой даты = 1.
Я хотел бы быть гибким, так что я могу также умножать весов на 0,5 и 0,75 и пропорциональном сделано для отдыха и т.д.
Спасибо всем огромное за помощь и поддержку.
С наилучшими пожеланиями.
Я не понимаю математику. 'df.Test.sum() * 2 == 1.30' Итак, вы хотите иметь отрицательные записи для тех строк, где' Test is NaN'? – MaxU
Извинения, моя ошибка. Я действительно хочу, чтобы вес весом 0,75, а затем весы были скорректированы вверх. Уточнили вопрос. – MysterioProgrammer91
Это поможет увидеть желаемый результат. – Parfait