Нет необходимости сначала преобразовывать значения в NaN
. Итак, давайте предположим, что это отправная точка:
np.random.seed(0)
s = pd.Series(np.random.randint(0,100, 50))
Тогда вы можете использовать loc
с np.resize
:
mask = s > 25
s.loc[mask] = np.resize([10, 20, 30], mask.sum())
в качестве альтернативы , с pd.Series.mask
:
s = s.mask(s > 25, np.resize([10, 20, 30], len(s.index)))
Результат:
print(s.head(10))
# 0 10
# 1 20
# 2 30
# 3 10
# 4 20
# 5 9
# 6 30
# 7 21
# 8 10
# 9 20
# dtype: int32
То, что можно сделать, имеют файл конфигурации по умолчанию, который остается неизменным, если некоторая новая конфигурация не добавляется. Затем у Вас есть другой файл, который переопределяет конфигурации файла по умолчанию.
config.Default.xml
config.User.xml
Только config.Default.xml является источником, которым управляют. config.User.xml содержит только конфигурации, которые отличаются для Вас. Так, скажите, что Вы тестируете на локальном SQL-сервере, Вы помещаете только строку подключения там, и она переопределит конфигурацию. Строка подключения по умолчанию.
Смотрите на.Net Framwork Application Configuration, он делает большинство (если не все) работы для Вас.
Один метод, который я использовал, должен иметь две версии файла конфигурации и иметь получение по запросу сценария установщика правильная версия.
Оба файла содержат те же ключи, но каждый содержит значения 'dev', и другой содержит значения, которые мы ожидаем развертывать и редактироваться в поле.
Мы храним подобные файлы в нашей системе управления исходным кодом и имеем различные папки для среды, для которой мы создаем.
Таким образом, мы имеем:
Dev
Test
Live
Существуют подпапки под ними для другой среды определенные файлы.
Мы имеем
Hudson удаляет начальный файл и развертывает корректный файл для корректной среды (в настоящее время только сертификат).
Это позволяет разработчикам документировать и разрабатывать производство, сертификат и файлы конфигурации уровня разработки независимо и присваивать версию им отдельно в SVN.
Я думаю, что принятый ответ хорош, но в зависимости от Ваших требований, он может иметь ограничения.
Мы используем следующий подход. Обратите внимание, что мы - магазин.NET с помощью VS и используем MSBuild (встроенный, общественный и пользовательский) задачи.
Задача BeforeBuild проекта ищет существование App.config и если не найденный копиями App.default.config к App.config. Кроме того, сервер сборки всегда удаляет App.config, если он существует на сборке CI (гарантирует чистую конфигурацию). Мы также затем используем Сообщество MSBuild задача FileUpdate заменить маркеры соответствующими значениями на основе того, что разрабатывает проект.
Например, новый контроль разработчика может установить строки подключения дб для локальной базы данных, ночная сборка может установить для ночного дб и т.д.
Я был, работают, у нас есть отдельные файлы конфигурации для, развертывается. Таким образом, файлы конфигурации в наших решениях являются версиями разработки, и люди могут изменить их на содержание своей основы. Эти файлы конфигурации никогда не развертываются нигде.
Файлы конфигурации, которые развертываются, хранятся в отдельном месте в нашем поставщике управления исходным кодом. Если кто-то должен внести изменение конфигурации, которое будет развернуто, они должны изменить эту версию вместо этого.
Для каждого конфигурационного файла x, создайте файл, что Вы делаете регистрацию, названную x.dist, который является распределенной конфигурацией значения по умолчанию. После выезда разработчиков имейте сценарий, который копирует каждый x.dist файл в x, где они могут настроить x так же по мере необходимости. Этот сценарий может быть повторно выполнен для обновления файлов после существенных изменений, или разработчики могут вручную объединиться в их изменениях.
Для развертывания можно зарегистрироваться живых файлах развертывания и иметь сценарии запуска, относятся к ним явно (например, - конфигурируют x.production).
Этот подход используется, например, в том, как Wordpress распределяется (необходимо скопировать шаблон wp-config.php файл), или в проектах разработки, которые используют autoconf (где в configure.ac регистрируются, но файл конфигурации должен быть сгенерирован каждым разработчиком; специальный файл конфигурации создается для распределения в tarballs во время выпуска).