Skip to content
Snippets Groups Projects
Commit 7d0c68f5 authored by Michael Reuscher's avatar Michael Reuscher
Browse files

create dataframes refactored

parent 26b830eb
No related branches found
No related tags found
1 merge request!4Python driver and data analysis part
......@@ -17,67 +17,64 @@ class DataFrameCreator:
merged_dfs[outer_key] = merged_dataframe_sorted
return merged_dfs
def read_various_data(self, root, folder):
for filename in folder:
if filename.endswith('.dat'):
file_path = os.path.join(root, filename)
dataframe_name = os.path.splitext(filename)[0]
dataframe_type = dataframe_name.split('-')[1]
dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
@staticmethod
def _set_dataframe(root, filename):
if filename.endswith('.dat'):
file_path = os.path.join(root, filename)
dataframe_name = os.path.splitext(filename)[0]
dataframe_type = dataframe_name.split('-')[1]
dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
return dataframe, dataframe_type, dataframe_name
if dataframe_type in self.v_dfs:
inner_dict = self.v_dfs[dataframe_type]
if dataframe_name in inner_dict:
# DataFrame hinzufügen
inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
ignore_index=True)
else:
inner_dict[dataframe_name] = dataframe
else:
self.v_dfs[dataframe_type] = {
dataframe_name: dataframe
}
def read_various_data(self, root, filename):
dataframe, dataframe_type, dataframe_name = self._set_dataframe(root, filename)
if dataframe_type in self.v_dfs:
inner_dict = self.v_dfs[dataframe_type]
if dataframe_name in inner_dict:
# DataFrame hinzufügen
inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
ignore_index=True)
else:
inner_dict[dataframe_name] = dataframe
else:
self.v_dfs[dataframe_type] = {
dataframe_name: dataframe
}
def read_long_data(self, root, folder):
for filename in folder:
if filename.endswith('.dat'):
file_path = os.path.join(root, filename)
dataframe_name = os.path.splitext(filename)[0]
dataframe_type = dataframe_name.split('-')[1]
dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
# Berechnung der Zeitdifferenz in Sekunden ab dem ersten Wert
if not dataframe.empty:
dataframe['start'] = pd.to_datetime(dataframe['start'], unit='s')
start_time = dataframe['start'].iloc[0]
dataframe['seconds_since_start'] = (dataframe['start'] - start_time).dt.total_seconds()
def read_long_data(self, root, filename):
dataframe, dataframe_type, dataframe_name = self._set_dataframe(root, filename)
# Berechnung der Zeitdifferenz in Sekunden ab dem ersten Wert
if not dataframe.empty:
dataframe['start'] = pd.to_datetime(dataframe['start'], unit='s')
start_time = dataframe['start'].iloc[0]
dataframe['seconds_since_start'] = (dataframe['start'] - start_time).dt.total_seconds()
if dataframe_type in self.l_dfs:
inner_dict = self.l_dfs[dataframe_type]
if dataframe_name in inner_dict:
# DataFrame hinzufügen
inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
ignore_index=True)
else:
inner_dict[dataframe_name] = dataframe
else:
self.l_dfs[dataframe_type] = {
dataframe_name: dataframe
}
if dataframe_type in self.l_dfs:
inner_dict = self.l_dfs[dataframe_type]
if dataframe_name in inner_dict:
# DataFrame hinzufügen
inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
ignore_index=True)
else:
inner_dict[dataframe_name] = dataframe
else:
self.l_dfs[dataframe_type] = {
dataframe_name: dataframe
}
def create(self):
dfs = {}
for root, _, folder in os.walk(self.folder_path):
if os.path.basename(root) == "statistics":
print("this was statistic")
continue
for filename in folder:
print("this was statistic" + filename)
continue
elif os.path.basename(root) == "Data_Set_Long":
self.read_long_data(root, folder)
for filename in folder:
self.read_long_data(root, filename)
else:
self.read_various_data(root, folder)
for filename in folder:
self.read_various_data(root, filename)
various_dfs = self._merge_dataframes(self.v_dfs)
long_dfs = self._merge_dataframes(self.l_dfs)
return various_dfs, long_dfs
......@@ -3,8 +3,6 @@ import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
import os
import pandas as pd
sns.set_theme()
......@@ -68,15 +66,3 @@ class SeabornPlotter:
plt.xticks(rotation=45)
plt.savefig(title + ".svg", format='svg')
plt.show()
......@@ -17,12 +17,13 @@ def main():
# Import Data
creator = DataFrameCreator(data_path)
v_dataframes, l_dataframes = creator.create()
# Plot
for frame in v_dataframes.keys():
if not v_dataframes[frame].empty:
# Setup Plotter
frame_name = frame
v_plotter = SeabornPlotter(v_dataframes[frame], frame_name)
# Plotter run
v_plotter.plot_histogram_various()
......@@ -31,7 +32,6 @@ def main():
# Setup Plotter
frame_name = frame
l_plotter = SeabornPlotter(l_dataframes[frame], frame_name)
# Plotter run
l_plotter.plot_histogram_long()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment