При работе с pandas
фреймами данных (или numpy
массивами) вы всегда должны пытаться использовать векторизованные операции вместо циклов for над отдельными элементами фрейма данных. Векторизованные операции (почти всегда) значительно быстрее, чем for-циклы.
В вашем случае вы можете использовать встроенную в панду операцию векторизации str.extract
, которая позволяетизвлечение части строки, соответствующей шаблону поиска регулярных выражений.Шаблон поиска регулярного выражения mas (.+)
должен захватывать часть строки, которая следует после 'mas'.
import pandas as pd
# Example dataframe with phrases
df = pd.DataFrame({'Corpo': ['I like birds', 'I mas like birds', 'I like mas birds']})
# Use regex search to extract phrase sections following 'mas'
df2 = df.Corpo.str.extract(r'mas (.+)')
# Fill gaps with full original phrase
df2 = df2.fillna(df.Corpo)
даст в результате:
In [1]: df2
Out[1]:
0
0 I like birds
1 like birds
2 birds