Вы можете использовать str.extract
с contains
и loc
с помощью boolean indexing
:
df1 = (df.AgeuponOutcome.str.extract('(\d+) (\w+)', expand=True))
df1.columns = ['a','b']
print (df1)
a b
0 1 year
1 1 year
2 2 years
3 3 weeks
4 2 years
5 1 month
6 3 weeks
7 3 weeks
8 5 months
9 1 year
10 2 years
11 2 years
12 4 years
print (df1.loc[df1.b.str.contains('month'), 'a'])
5 1
8 5
Name: a, dtype: object
print (df1.loc[df1.b.str.contains('year'), 'a'])
0 1
1 1
2 2
4 2
9 1
10 2
11 2
12 4
Name: a, dtype: object
Если вам нужны выходные данные в качестве новых столбцов:
df1['month'] = (df1.loc[df1.b.str.contains('month'), 'a'])
df1['year'] = (df1.loc[df1.b.str.contains('year'), 'a'])
df1['week'] = (df1.loc[df1.b.str.contains('week'), 'a'])
print (df1)
a b month year week
0 1 year NaN 1 NaN
1 1 year NaN 1 NaN
2 2 years NaN 2 NaN
3 3 weeks NaN NaN 3
4 2 years NaN 2 NaN
5 1 month 1 NaN NaN
6 3 weeks NaN NaN 3
7 3 weeks NaN NaN 3
8 5 months 5 NaN NaN
9 1 year NaN 1 NaN
10 2 years NaN 2 NaN
11 2 years NaN 2 NaN
12 4 years NaN 4 NaN
ИЗМЕНИТЬ по комментарию:
Вы можете использовать:
#convert to int
df1['a'] = df1.a.astype(int)
#divide by constant to column a
df1.loc[df1.b.str.contains('month'), 'a'] = df1.loc[df1.b.str.contains('month'), 'a'] / 12
df1.loc[df1.b.str.contains('week'), 'a'] = df1.loc[df1.b.str.contains('week'), 'a'] /52.1429
print (df1)
a b
0 1.000000 year
1 1.000000 year
2 2.000000 years
3 0.057534 weeks
4 2.000000 years
5 0.083333 month
6 0.057534 weeks
7 0.057534 weeks
8 0.416667 months
9 1.000000 year
10 2.000000 years
11 2.000000 years
12 4.000000 years
К сожалению, нет никаких хороших, объединенных инструментов (что я нашел так или иначе) для тестирования приложений CF. Никто не обеспечивает насмешку, так как CLR CF отсутствует, вещам нравится, Испускают, делая гвозди трудными для небольшого рынка.
Microsoft обеспечивает возможности модульного теста в Studio и Сервере Основы Команды для приложений для интеллектуального устройства, но они не делают UI, отладка тестов является удивительно болезненной, и просто запускающие тесты являются медленными, таким образом, они имеют тенденцию очень еще быть хорошими для регрессионных тестов и не.
Microsoft обеспечивает некоторые инструменты и платформу инструмента для управляемого рабочим столом тестирования в Тестовом Наборе CE (CETK), включая DATK, на который ссылается Alan. Они также обеспечивают вещи как Инструмент тестирования Загрузочного лотка, который они используют в качестве части своего тестирования логотипа.
Если ни один из них, кажется, не работает на Вас, довольно быстрый способ настроить тестирование, это все еще управляется от ПК (который я думаю, что все тестирование должно, еще это имеет тенденцию быть болезненным для выполнения, жесткий для автоматизации, и перенос для входа передачи/данных отказа), Вы могут использовать API CoreCon или Удаленную Платформу Инструментов для создания коммуникационного канала и среды тестирования.
Я искренне надеюсь, что VSD (Studio для Устройств) команда является dogfooding TFS и что мы получаем намного более богатый набор инструментов со следующим выпуском Studio.
SDK Windows Mobile 6 (принимающий Вы - базирующийся CE6), идет с Windows Mobile TestKit - который имеет инструменты для записи автоматизации UI.
Если Вы - базирующийся CE5, разработчик платформы (инструменты, используемые для создания устройств), идет с чем-то позвонившим DATK (инструментарий автоматизации устройства) - это было предшественником к упомянутому выше WMTK.
Посмотрите на TestComplete - они сказали, что новая версия 7 сможет тестировать приложения для Windows Mobile
Немного вне темы, но мы (www.orbiz.biz, если это все еще живо) сделали своего рода порт NUnit, таким образом, мы имели бегуна на устройстве, и выполнили код CF на устройстве и запустили тесты.
Работы вполне хорошо - я не думаю, что это было большое изменение от исходного, таким образом, более новый NUnit's мог бы работать с более новым CF.
Извините, у меня нет кода, и компания отчасти больше не существует, иначе, я был бы рад совместно использовать то, что мы имели :(
Можно автоматизировать CE и Windows Mobile на уровне GUI с помощью инструмента, такого как Баклажан в сочетании с инструментом с дистанционным управлением, таким как контроллер кармана SOTI или MS Удаленный Контроллер отображения. Лично, я предпочел бы основанный на объектах инструмент инструменту соответствия изображения по причинам устойчивости и пригодности для обслуживания.
Можно также автоматизировать непосредственно с SOTI, но я нашел это громоздким, как объяснено здесь