BananaSauce commited on
Commit
7a2556d
·
1 Parent(s): 83c336a

Update multiple.py

Browse files
Files changed (1) hide show
  1. multiple.py +25 -15
multiple.py CHANGED
@@ -49,31 +49,49 @@ def perform_analysis(uploaded_dataframes):
49
  average_time_spent_seconds = filtered_scenarios.groupby('Functional area')['Time spent'].mean().reset_index()
50
  # Convert average time spent from seconds to minutes and seconds format
51
  average_time_spent_seconds['Time spent'] = pd.to_datetime(average_time_spent_seconds['Time spent'], unit='s').dt.strftime('%M:%S')
 
 
52
  # Group by functional area and get the start datetime for sorting
53
  start_datetime_group = filtered_scenarios.groupby('Functional area')['Start datetime'].min().reset_index()
54
- # Merge average_time_spent_seconds and start_datetime_group
 
 
 
 
 
 
 
 
55
  average_time_spent_seconds = average_time_spent_seconds.merge(start_datetime_group, on='Functional area')
56
- # Filter scenarios based on selected functional area
 
 
 
 
57
  if selected_status == 'Failed':
58
- grouped_filtered_scenarios = filtered_scenarios.groupby('Environment')[['Functional area', 'Scenario name', 'Error message','Time spent(m:s)']].apply(lambda x: x.reset_index(drop=True))
59
  elif selected_status == 'Passed':
60
  grouped_filtered_scenarios = filtered_scenarios.groupby('Functional area')[['Scenario name', 'Time spent(m:s)']].apply(lambda x: x.reset_index(drop=True))
61
  else:
62
  grouped_filtered_scenarios = None
63
  grouped_filtered_scenarios.reset_index(inplace=True)
64
  grouped_filtered_scenarios.drop(columns=['level_1'], inplace=True)
65
- # grouped_filtered_scenarios['level_1'] = index
66
  grouped_filtered_scenarios.index = grouped_filtered_scenarios.index + 1
67
- st.dataframe(grouped_filtered_scenarios)
 
68
  # Sort the average time spent table by start datetime
69
  average_time_spent_seconds = average_time_spent_seconds.sort_values(by='Start datetime')
70
 
71
  # Display average time spent on each functional area in a table
72
- st.markdown("### Average Time Spent on Each Functional Area")
73
  average_time_spent_seconds.index = average_time_spent_seconds.index + 1
 
 
 
 
74
  st.dataframe(average_time_spent_seconds)
75
 
76
- # Check if selected_status is 'Failed' and grouped_filtered_scenarios length is less than or equal to 400
77
  if selected_status != 'Passed':
78
  # Create and display bar graph of errors by functional area
79
  st.write(f"### Bar graph showing number of '{selected_status}' scenarios in each functional area:")
@@ -114,14 +132,6 @@ def multiple_main():
114
  for uploaded_file in uploaded_files:
115
  # Preprocess the uploaded CSV file
116
  data = preprocess_uploaded_file(uploaded_file)
117
-
118
-
119
- # Extract environment name from filename
120
- filename = uploaded_file.name
121
- environment = filename.split('_Puppeteer')[0]
122
-
123
- # Add environment column to the dataframe
124
- data['Environment'] = environment
125
 
126
  # Append the dataframe to the list
127
  uploaded_dataframes.append(data)
 
49
  average_time_spent_seconds = filtered_scenarios.groupby('Functional area')['Time spent'].mean().reset_index()
50
  # Convert average time spent from seconds to minutes and seconds format
51
  average_time_spent_seconds['Time spent'] = pd.to_datetime(average_time_spent_seconds['Time spent'], unit='s').dt.strftime('%M:%S')
52
+
53
+
54
  # Group by functional area and get the start datetime for sorting
55
  start_datetime_group = filtered_scenarios.groupby('Functional area')['Start datetime'].min().reset_index()
56
+ end_datetime_group = filtered_scenarios.groupby('Functional area')['End datetime'].max().reset_index()
57
+
58
+ # Calculate the total time spent for each functional area (difference between end and start datetime)
59
+ total_time_spent_seconds = (end_datetime_group['End datetime'] - start_datetime_group['Start datetime']).dt.total_seconds()
60
+
61
+ # Convert total time spent from seconds to minutes and seconds format
62
+ total_time_spent_seconds = pd.to_datetime(total_time_spent_seconds, unit='s').dt.strftime('%M:%S')
63
+
64
+ # Merge the average_time_spent_seconds with start_datetime_group and end_datetime_group
65
  average_time_spent_seconds = average_time_spent_seconds.merge(start_datetime_group, on='Functional area')
66
+ average_time_spent_seconds = average_time_spent_seconds.merge(end_datetime_group, on='Functional area')
67
+ average_time_spent_seconds['Total Time Spent'] = total_time_spent_seconds
68
+
69
+
70
+ # Filter scenarios based on selected functional area
71
  if selected_status == 'Failed':
72
+ grouped_filtered_scenarios = filtered_scenarios.groupby('Environment')[['Functional area', 'Scenario name', 'Error message','Time spent(m:s)','Start datetime']].apply(lambda x: x.reset_index(drop=True))
73
  elif selected_status == 'Passed':
74
  grouped_filtered_scenarios = filtered_scenarios.groupby('Functional area')[['Scenario name', 'Time spent(m:s)']].apply(lambda x: x.reset_index(drop=True))
75
  else:
76
  grouped_filtered_scenarios = None
77
  grouped_filtered_scenarios.reset_index(inplace=True)
78
  grouped_filtered_scenarios.drop(columns=['level_1'], inplace=True)
 
79
  grouped_filtered_scenarios.index = grouped_filtered_scenarios.index + 1
80
+ st.dataframe(grouped_filtered_scenarios)
81
+
82
  # Sort the average time spent table by start datetime
83
  average_time_spent_seconds = average_time_spent_seconds.sort_values(by='Start datetime')
84
 
85
  # Display average time spent on each functional area in a table
86
+ st.markdown("### Total and Average Time Spent on Each Functional Area")
87
  average_time_spent_seconds.index = average_time_spent_seconds.index + 1
88
+ # Rename the columns for clarity
89
+ average_time_spent_seconds.rename(columns={'Start datetime': 'Start Datetime', 'End datetime': 'End Datetime', 'Time spent':'Average Time Spent'}, inplace=True)
90
+ # Rearrange the columns
91
+ average_time_spent_seconds = average_time_spent_seconds[['Functional area', 'Total Time Spent', 'Start Datetime', 'End Datetime', 'Average Time Spent']]
92
  st.dataframe(average_time_spent_seconds)
93
 
94
+ # Check if selected_status is 'Failed' and grouped_filtered_scenarifos length is less than or equal to 400
95
  if selected_status != 'Passed':
96
  # Create and display bar graph of errors by functional area
97
  st.write(f"### Bar graph showing number of '{selected_status}' scenarios in each functional area:")
 
132
  for uploaded_file in uploaded_files:
133
  # Preprocess the uploaded CSV file
134
  data = preprocess_uploaded_file(uploaded_file)
 
 
 
 
 
 
 
 
135
 
136
  # Append the dataframe to the list
137
  uploaded_dataframes.append(data)