Old engine for Continuous Time Bayesian Networks. Superseded by reCTBN. 🐍
https://github.com/madlabunimib/PyCTBN
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.1 KiB
68 lines
2.1 KiB
import os
|
|
import glob
|
|
import pandas as pd
|
|
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......
|
|
|
|
:files_path: il path alla cartella contenente i dataset da utilizzare
|
|
"""
|
|
def __init__(self, files_path):
|
|
self.files_path = files_path
|
|
self.df_list = []
|
|
self.trajectories = []
|
|
|
|
def import_data_from_csv(self):
|
|
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):
|
|
df['State'] = df[df.columns[2:]].apply(lambda row: ''.join(row.values.astype(str)), axis=1)
|
|
|
|
def build_trajectories(self):
|
|
for data_frame in self.df_list:
|
|
self.merge_value_columns(data_frame)
|
|
trajectory = data_frame[['Time','State']].to_numpy()
|
|
self.trajectories.append(trajectory)
|
|
#Clear the data_frame
|
|
data_frame = data_frame.iloc[0:0]
|
|
|
|
|
|
|
|
|
|
|
|
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]))
|
|
|
|
|
|
|
|
|
|
|