Я пытаюсь использовать регулярные выражения в пандах для фильтрации строк, где есть ~
в начале строки И в конце строки для данного столбца. Например, возьмите следующие панды Dataframe:
import pandas as pd
df = pd.DataFrame({'line': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'Unit': ['LF', 'LS~', '~~SF', 'CY', '~SF~', 'PC', '~~', '~LF', '~PC~']})
Вот что я хочу для вывода:
df[df.Unit.str.contains(MY_EXPRESSION, regex=True)]
line Unit
0 1 LF
1 2 LS~
2 3 ~~SF
3 4 CY
5 6 PC
7 8 ~LF
Что я пробовал до сих пор:
- MY_EXPRESSION = '^ [^ ~]. * [^ ~] $'
Это фильтрует что-либо с ~ в начале ИЛИ конца строки. Я хочу отфильтровать только строки с ~
в начале И конце строки.
- MY_EXPRESSION = '^ ([^ ~]) (. *) ([^ ~]) $'
Это также отфильтровывает строки с ~ в начале ИЛИ конца строки. Опять же, я хочу отфильтровать только строки с ~
в начале и конце строки.
Какое регулярное выражение мне нужно (например, MY_EXPRESSION
в примере), чтобы отфильтровать Dataframe желаемым способом?
Я пользуюсь пандами v.0.23.4.