psifr.fr.filter_data#

psifr.fr.filter_data(data, subjects=None, lists=None, trial_type=None, positions=None, inputs=None, outputs=None)#

Filter data to get a subset of trials.

Parameters:
  • data (pandas.DataFrame) – Raw or merged data to filter.

  • subjects (hashable or list of hashable) – Subject or subjects to include.

  • lists (hashable or list of hashable) – List or lists to include.

  • trial_type ({'study', 'recall'}) – Trial type to include.

  • positions (int or list of int) – Position or positions to include.

  • inputs (int or list of int) – Input position or positions to include.

  • outputs (int or list of int) – Output position or positions to include.

Returns:

filtered – The filtered subset of data.

Return type:

pandas.DataFrame

Examples

>>> from psifr import fr
>>> subjects_list = [1, 1, 2, 2]
>>> study_lists = [['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h']]
>>> recall_lists = [['b'], ['d', 'c'], ['f', 'e'], []]
>>> raw = fr.table_from_lists(subjects_list, study_lists, recall_lists)
>>> fr.filter_data(raw, subjects=1, trial_type='study')
   subject  list trial_type  position item
0        1     1      study         1    a
1        1     1      study         2    b
3        1     2      study         1    c
4        1     2      study         2    d
>>> data = fr.merge_free_recall(raw)
>>> fr.filter_data(data, subjects=2)
   subject  list item  input  output  study  recall  repeat  intrusion  prior_list  prior_input
4        2     1    e      1     2.0   True    True       0      False         NaN          NaN
5        2     1    f      2     1.0   True    True       0      False         NaN          NaN
6        2     2    g      1     NaN   True   False       0      False         NaN          NaN
7        2     2    h      2     NaN   True   False       0      False         NaN          NaN