import pathlib import json import datetime as dt import numpy as np import pandas as pd pd.options.display.float_format = '{:}'.format DATAFRAME_HEAD_COUNT = 3 rec_dir = pathlib.Path(".").joinpath("recordings").joinpath("2021_02_08").absolute() export_dir = rec_dir.joinpath("004").joinpath("exports").joinpath("000") #surfaces_dir2 = export_dir.joinpath("surfaces") export_dir with rec_dir.joinpath("000").joinpath("info.player.json").open() as file: meta_info = json.load(file) meta_info start_timestamp_unix = meta_info["start_time_system_s"] start_timestamp_pupil = meta_info["start_time_synced_s"] start_timestamp_diff = start_timestamp_unix - start_timestamp_pupil gaze_positions_df = pd.read_csv(export_dir.joinpath("gaze_positions.csv")) gaze_positions_df["gaze_timestamp_unix"] = gaze_positions_df["gaze_timestamp"] + start_timestamp_diff gaze_positions_df["gaze_timestamp_datetime"] = pd.to_datetime(gaze_positions_df["gaze_timestamp_unix"]+ 3600, unit="s")# datetime is giving one hour less gaze_positions_df.to_csv(export_dir.joinpath("gaze_positions_unix_datetime.csv")) gaze_positions_df.head(DATAFRAME_HEAD_COUNT) ###### OR ######## def convert_and_save_timestamps3(input_path, column_names, timestamp_offset=start_timestamp_diff): #minute, second, milisecond trial output_path = input_path.with_name(input_path.stem + "_unix_datetime").with_suffix(input_path.suffix) df = pd.read_csv(input_path) for column_name in column_names: unix_column_name = column_name + "_unix" datetime_column_name = column_name + "_datetime" min_sc_msc_column_name = column_name + "_min_sec_milisec" df[unix_column_name] = df[column_name] + timestamp_offset #datetime is giving one hour less df[datetime_column_name] = pd.to_datetime(df[unix_column_name]+3600, unit="s") #df[min_sc_msc_column_name] = dt.datetime.strptime(df[unix_column_name]+3600, "%M, %S, %f") #df[min_sc_msc_column_name] = dt.datetime.strptime(pd.Series.to_string(df[datetime_column_name]),'%Y-%m-%d %H:%M:%S.%f') #df[min_sc_msc_column_name] = dt.time.strftime(df[datetime_column_name],'%M, %S, %f') # df[min_sc_msc_column_name] = (dt.strftime(df[datetime_column_name], '%M:%S,%f')) df[min_sc_msc_column_name] = pd.to_datetime(df[datetime_column_name]).dt.strftime("%H:%M:%S.%f") df.to_csv(output_path) return df.head(DATAFRAME_HEAD_COUNT) convert_and_save_timestamps3( input_path=export_dir.joinpath("gaze_positions.csv"), column_names=["gaze_timestamp"] )