Вы можете использовать регулярные выражения:
Регулярные выражения (https://docs.python.org/3/howto/regex.html) могут использоваться для выполнения именно того, что вы просите. Например, если вы ищете компанию, связанную с 'Regex', например:
Regex
Regex_inc
NotRegex
Вы можете сделать следующее:
[Обратите внимание, что я преобразовал столбец DataFrame Name
в серию и использую метод .str.contains()
, который можно использовать для индексации соответствующих строк из вашего исходного кадра данных (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.contains.html)]
import pandas as pd
data = [['Regex', 'company_1'],
['Regex_inc', 'company_2'],
['NotRegex', 'company_3']]
df = pd.DataFrame(data).rename(columns={0:'Name', 1:'Company'})
df_sorted = df[pd.Series(df['Name']).str.contains(r'^Regex')]
print df
print df_sorted
Возвращает
Name Company
0 Regex company_1
1 Regex_inc company_2
2 NotRegex company_3
для df
и:
Name Company
0 Regex company_1
1 Regex_inc company_2
для df_sorted
Аргумент для метода pd.Series.str.contains()
был '^Regex'
, в котором говорится, что для строки, возвращающей значение True
, она должна начинаться с 'Regex'
.
Я использовал эту таблицу регулярных выражений (https://www.rexegg.com/regex-quickstart.html) для специальных символов. Я не специалист по регулярным выражениям, но в Интернете можно найти множество материалов, в том числе ссылки, содержащиеся в этом ответе. Также здесь ( https://regex101.com/) - это тестер регулярных выражений, который можно использовать для проверки ваших шаблонов.