У меня есть фрейм данных pandas, который содержит строки различной длины и символов.Фильтрация кадра данных pandas на основе совпадения с частичными строками
Например:
print df['name'][0]
print df['name'][1]
print df['name'][2]
print df['name'][3]
бы вернуть что-то вроде этого:
UserId : Z5QF1X33A
loginId : test.user
UserId : 0000; searchText : Cap
accountSampleToExclude : 0; accountSampleName : Sample Text; UserId : Z5QF1X33A; accountSampleType : Test; accountSample : Test
То, что я хочу сделать, это быть в состоянии разобрать через колонку и возвращать только фактическое отношение идентификатор так на основе приведенный выше пример:
Z5QF1X33A
test.user
0000
Z5QF1X33A
Я решил, что регулярное выражение будет простым подходом к решению этого вопроса, но до сих пор я только смог придумать какой-то закодированного решение псевдо только в частных случаях:
df['name'] = df['name'].str.strip(r'(?<=\UserId :).*')
df['name'] = df['name'].str.strip(r'(?<=\loginId :).*')
Это будет работать для строк, которые похожи на
df['name'][0]
df['name'][1]
, но не будет работать для других случаев. Любая помощь была бы высоко оценена, я понимаю, что ее можно было бы решить без регулярного выражения, возможно, просто с методом str.split(), но не уверен, как действовать в pythonic и/или pandas.
Это работает для примера, однако, есть более вещий способ приблизиться к этому (без использования регулярных выражений?), Что не слишком многословен. – astateofsanj
@ user3356075, что случилось с «использованием регулярных выражений»? – MaxU