У меня есть датафрейм (с именем df) следующим образом:
s01 s03 s06 s07 s08
0 1 1 1 1 1
1 1 1 1 1 1
2 0 1 1 0 1
3 0 0 1 1 0
4 0 0 0 1 1
Я хотел бы заменить все единицы на значение индекса.
Окончательный результат должен выглядеть следующим образом:
s01 s03 s06 s07 s08
0 0 0 0 0 0
1 1 1 1 1 1
2 0 2 2 0 2
3 0 0 3 3 0
4 0 0 0 4 4
Это всего лишь образец. Реальный фрейм данных имеет тысячи строк и тысячи столбцов. Приоритет состоит в том, чтобы иметь эффективный код, который изменяет данные как можно быстрее.
Я подумал о трех возможных способах решения этой проблемы:
Использование 2 'для операторы 'loops and a' if 'и l oop непосредственно над объектом panda или преобразование данных в двумерный массив numpy с циклическим повторением.
Использование некоторого вида pandas встроенная функция фильтрации для pandas фрейма данных.
Преобразование фрейма данных в двумерный массив Numpy и использование некоторой встроенной функции numpy для измените данные.
Какой самый эффективный способ?
Есть ли другой способ, который более эффективен, и я об этом не подумал?
Спасибо