Вы можете преобразовать в строку и извлечь целое число с помощью регулярных выражений.
df['B'].str.extract('(\d+)').astype(int)
Ну, решение для грубой силы состоит в том, чтобы попытаться инициировать соединение с базой данных по каждому серверу. Это скажет Вам, работает ли это, хотя у Вас могли быть проблемы тайм-аута.
Более изящное (но более трудный..., который является не всегда путем?) решение состояло бы в том, чтобы использовать WMI, чтобы соединиться с удаленной машиной и узнать, работает ли процесс SQL-сервера.
При необходимости в определенных серверах используйте WMI. Если Вы просто хотите все доступные серверы:
Используйте Класс TCPClient для создания родовой функции, которая соединяется в TCP с данным IP-адресом.
Затем выполните итерации по списку серверов, которые Вы хотите протестировать и попытаться открыть соединение с портом 1433.
System.Data.Sql.SqlDataSourceEnumerator
возвратит все экземпляры SQL Server, в настоящее время работающего.
Ссылка MSDN
Я, конечно, пошел бы с ответом Vincent. Просто сделайте абсолютно уверенными, что Вы закрываете и располагаете соединения TCP правильно и т.д., WMI кажется небольшим количеством излишества мне, если это - все, что Вы после.