"""
This module includes pipeline elements and processors for the preprocessing of the n-back task.
"""
import re
import pandas as pd
def extract_events(df, drop_old_cols=False):
"""
Pipeline element to extract N-back events from a list of Behaverse json events.
"""
pattern = re.compile("N[Bb]ack\..*")
def find_head_event(lst):
evts = [*map(lambda x: x.split('.',1)[1], filter(pattern.match, lst))]
return evts[0]
df['nback_event_type'] = df.types.apply(lambda t: find_head_event(t))
if drop_old_cols: df = df.drop(['types'],axis=1)
return df