Манипулирование строками для классификации - PullRequest
1 голос
/ 07 апреля 2020

У меня есть список ссылок, таких как:

Website
www.uk_nation.co.uk
www.nation_ny.com
www.unitednation.com
www.nation.of.freedom.es
www.freedom.org

и так далее.

Выше показано, как выглядит столбец моей таблицы данных. Как видите, у них общее слово «nation». Я хотел бы пометить / сгруппировать их и добавить один столбец в моем фрейме данных, чтобы ответить логическим значением (True / false; например, столбцы: Nation? опция: True/False).

Website                       Nation?
www.uk_nation.co.uk           True
www.nation_ny.com             True
www.unitednation.com          True
www.nation.of.freedom.es      True
www.freedom.org               False

Мне нужно сделать это, чтобы классифицировать веб-сайты более простым (и, возможно, более быстрым) способом. Есть ли у вас какие-либо предложения о том, как это сделать?

Любая помощь будет приветствоваться.

Ответы [ 3 ]

1 голос
/ 07 апреля 2020

Попробуйте str.contains

df['Nation']=df.Website.str.upper().str.contains('NATION')
0     True
1     True
2     True
3     True
4    False
Name: Website, dtype: bool
0 голосов
/ 07 апреля 2020

это мое предложение:

import pandas as pd

df = pd.DataFrame({'Website': ['www.uk_nation.co.uk', 
                                'www.nation_ny.com', 
                                'www.unitednation.com', 
                                'www.nation.of.freedom.es', 
                                'www.freedom.org']})

df['Nation?'] = df['Website'].str.contains("nation")
print(df)

вывод:

                    Website  Nation?
0       www.uk_nation.co.uk     True
1         www.nation_ny.com     True
2      www.unitednation.com     True
3  www.nation.of.freedom.es     True
4           www.freedom.org    False
0 голосов
/ 07 апреля 2020

Это должно сделать это:

df['Nation?']= df['website'].apply(lambda x: 'nation' in x.lower())
...