ОБНОВЛЕНО - Извините заранее, если я не задал вопрос правильно, но я впервые спросил на сайте!Обновлено - замена нескольких значений в ячейке dataframe pandas - python
Моя проблема: у меня есть фрейм данных pandas и один столбец, в котором мне нужно обрабатывать, содержит значения, разделенные (0: 0): , а в некоторых случаях некоторые из этих значений между «:» могут быть значением = значение , и может появляться в начале/середине/конце строки. Длина строки может различаться в каждой ячейке при повторении по строке, например.
clickstream['events']
1:3:5:7=23
23=1:5:1:5:3
9:0:8:6=5:65:3:44:56
1:3:5:4
У меня есть файл, который содержит значения поиска этих чисел, например. требуется
event_no,description,event
1,xxxxxx,login
3,ffffff,logout
5,eeeeee,button_click
7,tttttt,interaction
23,ferfef,click1
выход:
clickstream['events']
login:logout:button_click:interaction=23
click1=1:button_click:login:button_click:logout
Есть ли вещий способ смотреть эти индивидуальные значения и замены с event
колонке, соответствующей строке event_no
, как показано на выходе? У меня есть сотни событий и попытка выработать умный способ сделать это. pd.merge
бы сделал трюк, если у меня было одно значение, но я изо всех сил работать, как я могу работать по значениям и игнорировать «= значение» часть строки
Спасибо заранее!
Привет @Liam Фоль - Спасибо за ответ. Я попытался воспроизвести выше, но, похоже, получил следующую ошибку: «AttributeError: (« Объект «Серии» не имеет атрибута «split», u'occurred at index 1 ') '. Единственное изменение в ваших повторных утверждениях заключалось в том, чтобы 'clickstream = pd.DataFrame (EventsDict)' как 'clickstream = pd.DataFrame ([EventsDict])', чтобы избежать ошибки 'ValueError: если вы используете все скалярные значения, вы должны пройти индекс' ... любые идеи? спасибо – Maruhk
@Maruhk Звучит как приложение не работает. Можете ли вы разместить точный код, который у вас есть? Если вы используете полный фреймворк данных, вам нужно будет сделать что-то вроде: DF ['COL'] = DF ['COL']. Apply (lambda x: ....... –
похоже, что мой поисковый словарь был не создан должным образом, но после вашего метода я реплицировал преобразование и запустил функцию, но, похоже, получил ошибку при первом значении в наборе данных clickstream. Я скопировал код в следующем месте [ClickStream - ссылка на код и выходная ошибка] (http : //pastebin.com/jmxsK3fh) - спасибо – Maruhk