Создать ярлык для ряда str в зависимости от того, какое ключевое слово содержится в str - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь создать ярлык для ряда str в зависимости от того, какое ключевое слово содержится в str.Я некоторое время ломал голову над этим и не знал, как к нему подойти.Пробовал это:

mirantis['cat_label'] = np.where(pd.Series(mirantis.Mirantis_Address).str.contains('openstack|kubernetes'),'openstack', 'kubernetes')

Это ограничивает меня двумя ключевыми словами, но по сути мне нужно неограниченное количество ключевых слов.Есть мысли?

Пример данных:

https://www.mirantis.com/
https://www.mirantis.com/blog/how-to-increase-the-probability-of-a-vnf-working-with-your-cloud-qa/
https://www.mirantis.com/careers/
https://www.mirantis.com/company/press-center/in-the-media/
https://www.mirantis.com/software/mcp/sdn/
https://training.mirantis.com/openstack-courses-exams/
https://www.mirantis.com/services/transfer/
https://training.mirantis.com/kubernetes-docker-courses-exams/
https://www.mirantis.com/solutions/big-data-analytics/
https://www.mirantis.com/cloud-case-studies/
https://www.mirantis.com/services/transfer-services/
https://www.mirantis.com/cloud-videos/
https://www.mirantis.com/company/locations/
https://www.mirantis.com/blog/admit-it-vnf-certification-is-marketing-bs/
https://info.mirantis.com/mirantis-application-platform-beta
https://www.mirantis.com/support/enterprise-support-services/
https://www.mirantis.com/company/leadership/board-of-directors/
https://training.mirantis.com/certification/
https://www.mirantis.com/get-started/
https://www.mirantis.com/software/mcp/
https://docs.mirantis.com/
https://info.mirantis.com/live-demo
https://www.mirantis.com/solutions/network-functions-virtualization-nfv/
https://www.mirantis.com/services/build/
https://training.mirantis.com/
https://www.mirantis.com/software/ceph/
https://www.mirantis.com/solutions/container-technologies/
https://info.mirantis.com/eBook-MCP-Deployment-Guide_Landing-Page
https://www.mirantis.com/company/about/
https://www.mirantis.com/software/kubernetes/
https://www.mirantis.com/blog/how-to-deploy-spinnaker-on-kubernetes-a-quick-and-dirty-guide/
https://info.mirantis.com/webinar-vnf-validation-metaswitch
https://www.mirantis.com/company/press-center/info/
https://www.mirantis.com/company/investors/
https://www.mirantis.com/solutions/agile-enterprise/
https://www.mirantis.com/blog/introducing-mirantis-cloud-platform-mcp-spring-2018-release/
https://www.mirantis.com/partners/
https://www.mirantis.com/services/managed-services/
https://www.mirantis.com/services/operate/
https://www.mirantis.com/software/openstack/
https://www.mirantis.com/blog/
https://www.mirantis.com/cloud-brochures/
https://www.mirantis.com/cloud-events/
https://info.mirantis.com/contact-us
https://www.mirantis.com/cloud-webinars/
https://www.mirantis.com/software/application-platform/
https://info.mirantis.com/webinar-kubernetes-1-11
https://www.mirantis.com/blog/whats-new-in-kubernetes-1-11-the-qa/
https://www.mirantis.com/software/community/
https://www.mirantis.com/services/build-services/

1 Ответ

0 голосов
/ 21 сентября 2018

Я думаю, нужно extract:

L = ['openstack','kubernetes','cloud']
pat = '|'.join(r"\b{}\b".format(x) for x in L)
mirantis['cat_label'] = mirantis.Mirantis_Address.str.extract('('+ pat + ')', expand=False)
print (mirantis.head(10))
                                    Mirantis_Address   cat_label
0                          https://www.mirantis.com/         NaN
1  https://www.mirantis.com/blog/how-to-increase-...       cloud
2                  https://www.mirantis.com/careers/         NaN
3  https://www.mirantis.com/company/press-center/...         NaN
4         https://www.mirantis.com/software/mcp/sdn/         NaN
5  https://training.mirantis.com/openstack-course...   openstack
6        https://www.mirantis.com/services/transfer/         NaN
7  https://training.mirantis.com/kubernetes-docke...  kubernetes
8  https://www.mirantis.com/solutions/big-data-an...         NaN
9       https://www.mirantis.com/cloud-case-studies/       cloud
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...