Удалить подстроку в конце строки на основе списка строк для удаления - PullRequest
2 голосов
/ 21 января 2020

У меня есть список строк

x=['llc', 'corp', 'sa'] 

Мне нужно отфильтровать в конце столбца в моем фрейме данных, содержащем строки:

df = pd.DataFrame(['Geeks corp', 'toto', 'tete coope', 'tete sa', 'tata corp', 'titi', 'tmtm'] , columns =['Names']) 

в качестве вывода, который я хотел бы. есть:

list = ['Geeks', 'toto', 'tete coope', 'tete', 'tata', 'titi', 'tmtm']

Каковы ваши предложения?

Ответы [ 2 ]

1 голос
/ 21 января 2020

Использовать Series.str.replace с шаблоном регулярных выражений - добавлено $ для конца совпадения строки, добавлено \s+ для пробельного пространства до и присоединено | для регулярного выражения or:

pat = '|'.join(f'\s+{y}$' for y in x)
df['Names'] = df['Names'].str.replace(pat, '')
print (df)
        Names
0       Geeks
1        toto
2  tete coope
3        tete
4        tata
5        titi
6        tmtm
0 голосов
/ 21 января 2020

это решение будет работать

    import pandas as pd
    x=['llc', 'corp', 'sa'] 
    df = pd.DataFrame(['Geeks corp', 'toto', 'tete coope', 'tete sa', 'tata corp', 'titi', 'tmtm'] , columns =['Names'])
    for i in x:
        df["Names"] = df["Names"].str.replace(i, " ")
...