#dataframe #indexing #conditional-statements
Вопрос:
Я пытаюсь добавить столбец в фрейм данных, основанный на другом столбце в этом фрейме данных, где значения напрямую соответствуют другому столбцу. Я работаю на Python. У меня много проблем с тем, чтобы хорошо сформулировать это, поэтому я просто продемонстрирую.
У меня есть следующий фрейм данных:
DateTime Value
--------------------------------
2015-03-11 06:00:00 1
2015-03-11 07:00:00 2
2015-03-11 08:00:00 2
2015-03-11 09:00:00 3
2015-03-11 10:00:00 3
2015-03-11 11:00:00 2
2015-03-11 12:00:00 4
2015-03-11 13:00:00 6
2015-03-11 14:00:00 5
2015-03-11 15:00:00 3
2015-03-11 16:00:00 3
2015-03-11 17:00:00 2
2015-03-11 18:00:00 1
...
Теперь я хочу добавить столбец в этот фрейм данных, основанный на столбце «Значение», который называется «Value_2». Я хочу, чтобы «Value_2» отображал все значения «1», а затем находил первый экземпляр 3 или более последовательных значений >= 4, отображал значения «1» в течение первых 2 из этих 3 часов, а затем создавал все значения «0» и далее, вот так:
DateTime Value Value_2
---------------------------------------------
2015-03-11 06:00:00 1 1
2015-03-11 07:00:00 2 1
2015-03-11 08:00:00 2 1
2015-03-11 09:00:00 3 1
2015-03-11 10:00:00 3 1
2015-03-11 11:00:00 2 1
2015-03-11 12:00:00 4 1
2015-03-11 13:00:00 6 1
2015-03-11 14:00:00 5 0
2015-03-11 15:00:00 3 0
2015-03-11 16:00:00 3 0
2015-03-11 17:00:00 2 0
2015-03-11 18:00:00 1 0
...
Это будет представлять значение «допуска» в 2 часа, после чего еще несколько часов (последовательно) значений >= 4 приведут ко всем 0 и далее. Я пытаюсь создать код, чтобы я мог легко изменить это значение «допуска» от 2 часов до 3 часов (это означает, что после первых последовательных 3 значений >= 4 одно дополнительное последовательное значение >>= 4 приведет ко всем 0 и далее), примерно так:
DateTime Value Value_2
---------------------------------------------
2015-03-11 06:00:00 1 1
2015-03-11 07:00:00 2 1
2015-03-11 08:00:00 2 1
2015-03-11 09:00:00 3 1
2015-03-11 10:00:00 3 1
2015-03-11 11:00:00 2 1
2015-03-11 12:00:00 4 1
2015-03-11 13:00:00 6 1
2015-03-11 14:00:00 5 1
2015-03-11 15:00:00 4 0
2015-03-11 16:00:00 3 0
2015-03-11 17:00:00 2 0
2015-03-11 18:00:00 1 0
...
Я хотел бы иметь возможность изменить это значение «допуска» на любое число. И под «допуском» я просто подразумеваю, сколько последовательных строк значений >= 4 в столбце «Значение» может быть переведено в 1 в столбце «Значение 2», прежде чем они станут всеми 0 и далее.
Можно ли это сделать простым способом в python? Или это на самом деле очень сложно?