Source code for fino2py.reshaping.minute_by_minute_from_folder

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''Reshape finometer data into a minute-by-minute format from files in a folder.

This module provides a function to read the raw finometer data from the specified folder path and reshape the data into a minute-by-minute format. 
It utilizes the `read_raw_finometer_data` function to import the data and calculate the average of each measure over the selected time interval (default is 1 minute). 
The `minute_by_minute` function is then applied to reshape the data into a single row, with each column representing the average of a particular measure over each minute of the data collection.

Notes
-----
- The `read_raw_finometer_data` function is used to import the raw finometer data and calculate the average over the selected time interval.
- The `minute_by_minute` function is applied to reshape the data into a single row for each minute.
- If `save_raw` is True, the imported raw data is saved as a CSV file in the same folder as the data files.
- If `save` is True, the minute-by-minute reshaped data is saved as a CSV file in the same folder as the data files.

Example
-------
frame, id = minute_by_minute_from_folder('/path/to/folder', int='1T', save_raw=True, save=True)
'''


from ..dependencies import pd, Tuple
from ..ingesting.read_raw_finometer_data import read_raw_finometer_data
from .minute_by_minute import minute_by_minute

[docs]def minute_by_minute_from_folder(path: str, save_raw: bool = False, save: bool = False) -> Tuple[pd.DataFrame, str]: ''' This function reads the raw finometer data from the specified folder path and 'reshapes' the data into a minute-by-minute format. It uses the `read_raw_finometer_data` function to import the data and calculate the average of each measure over the selected time interval (1 minute in this case). Then, the `minute_by_minute` function is applied to reshape the data into a single row, with each column representing the average of a particular measure over each minute of the data collection. Parameters ---------- path : str The path to the folder containing the finometer data files. save_raw : bool, optional Specifies whether to save the imported raw data as a CSV file. The default is False. save : bool, optional Specifies whether to save the minute-by-minute analysis result as a CSV file. The default is False. Returns ------- Tuple[pd.DataFrame, str] A tuple containing the minute-by-minute analysis DataFrame and the Participant ID associated with the data. Notes ----- - The `read_raw_finometer_data` function is used to import the raw finometer data and calculate the average over the selected time interval. - The `minute_by_minute` function is applied to reshape the data into a single row for each minute. - If `save_raw` is True, the imported raw data is saved as a CSV file in the same folder as the data files. - If `save` is True, the minute-by-minute analysis result is saved as a CSV file in the same folder as the data files. Example ------- frame, id = minute_by_minute_from_folder('/path/to/folder', int='1T', save_raw=True, save=True) ''' frame, id = read_raw_finometer_data(path, interval= '1T', save_csv=save_raw) minute_frame = minute_by_minute(frame, id) if save == True: minute_frame.to_csv(path / f'{id} minute_by_minute.csv', index = False) return minute_frame, id