diff --git a/main_package/classes/importer.py b/main_package/classes/importer.py index f7c0b5c..b21c1d9 100644 --- a/main_package/classes/importer.py +++ b/main_package/classes/importer.py @@ -7,10 +7,11 @@ import numpy as np class Importer(): - """Importer forisce tutti i metodi per portare il dataset in input nelle strutture dati corrette per essere trattate - in memoria...... + """Importer forisce tutti i metodi per importare i dataset in input in pandas data_frame ed effettuare operazioni + volte ad ottenere i valori contenuti in tali frame nel formato utile alle computazioni sui dati. :files_path: il path alla cartella contenente i dataset da utilizzare + :df_list: lista contentente tutti i padas_data_frame che saranno importati """ def __init__(self, files_path): self.files_path = files_path @@ -18,14 +19,44 @@ class Importer(): self.trajectories = [] def import_data_from_csv(self): + """Importa tutti i file csv presenti nel path files_path in data_frame distinti. + Aggiunge ogni data_frame alla lista df_list. + + Parameters: + void + + Returns: + void + + """ read_files = glob.glob(os.path.join(self.files_path, "*.csv")) for file in read_files: my_df = pd.read_csv(file) #TODO:Aggiungere try-catch controllo correttezza dei tipi di dato presenti nel dataset e.g. i tipi di dato della seconda colonna devono essere float self.df_list.append(my_df) + def merge_value_columns(self, df): + """ Effettua il merging di tutte le colonne che contengono i valori delle variabili in un unica colonna chiamata State. + + Parameters: + df: il data_frame su cui effettuare il merging delle colonne + Returns: + void + """ df['State'] = df[df.columns[2:]].apply(lambda row: ''.join(row.values.astype(str)), axis=1) + + + def get_data_frames(self): + return self.df_list + + def clear_data_frames(self): + for data_frame in self.df_list: + data_frame = data_frame.iloc[0:0] + + + + def build_trajectories(self): for data_frame in self.df_list: self.merge_value_columns(data_frame) @@ -42,26 +73,7 @@ imp = Importer("../data") imp.import_data_from_csv() imp.build_trajectories() print(imp.trajectories[0]) -#print(len(imp.df_list)) -#print(imp.df_list[0]) -#for column in imp.df_list[0].columns[2:]: - #print(imp.df_list[0][column]) - #imp.df_list[0]['State'] = imp.df_list[0][column].astype(str) -#imp.df_list[0]['State'] = imp.df_list[0][imp.df_list[0].columns[2:]].apply(lambda row: ''.join(row.values.astype(str)), axis=1) - -#imp.df_list[0]['new'] = imp.df_list[0].astype(str).values.sum(axis=1) -#print(imp.df_list[0]) - -#trajectory = imp.df_list[0][['Time','State']].to_numpy() -#print(hash(trajectory[0][1])) -#print(hash(trajectory[0][1])) -#imp.df_list[0] = imp.df_list[0].iloc[0:0] -#print(imp.df_list[0]) - -#print(type(imp.df_list[0].iloc[0,2])) -#print(imp.df_list[0].iloc[:, 2:]) -#imp.merge_columns_values((imp.df_list[0])) -#print(type(imp.df_list[0].iloc[0,2])) + diff --git a/main_package/classes/trajectory.py b/main_package/classes/trajectory.py new file mode 100644 index 0000000..91dfa62 --- /dev/null +++ b/main_package/classes/trajectory.py @@ -0,0 +1,16 @@ +import pandas as pd +import numpy as np +import importer + + +class Trajectory(): + + def __init__(self, data_frame): + self.actual_trajectory = self.build_trajectory(data_frame) + + + def build_trajectory(self, data_frame): + return data_frame[['Time','State']].to_numpy() + + def get_trajectory(self): + return self.actual_trajectory