mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	 4e7e8b9360
			
		
	
	4e7e8b9360
	
	
	
		
			
			2. Create check_argparse which allows us to check which flags are or are not included in argparse statements. Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
		
			
				
	
	
		
			155 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| import sys
 | |
| import os
 | |
| import argparse
 | |
| import pandas as pd
 | |
| 
 | |
| #https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html
 | |
| #https://queirozf.com/entries/pandas-dataframe-plot-examples-with-matplotlib-pyplot
 | |
| 
 | |
| 
 | |
| if sys.version_info[0] != 3:
 | |
|     print("This script requires Python 3")
 | |
|     exit(1)
 | |
| 
 | |
|  
 | |
| sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))
 | |
| 
 | |
| class L3CSVParcer():
 | |
|     def __init__(self,csv_file):
 | |
| 
 | |
| 
 | |
|         # left this in for testing
 | |
|         '''csv_obj = open(csv_file, 'r')
 | |
|         csv_reader = csv.reader(csv_obj)
 | |
|         print(csv_reader)
 | |
| 
 | |
|         for row in csv_reader:
 | |
|             if row[1] == 'rx':
 | |
|                 print(row)'''
 | |
| 
 | |
|         include_summary = ['Time epoch','Time','Monitor','least','most','average']
 | |
|         self.csv_file = csv_file
 | |
|         df_s = pd.read_csv(self.csv_file,header = 0, usecols = lambda column : any(substr in column for substr in include_summary))
 | |
| 
 | |
|         print('{}'.format(csv_file))
 | |
|         csv_file_summary = self.csv_file.replace('results_','results_summary_')
 | |
| 
 | |
|         df_s.to_csv(csv_file_summary, index = False, header=True)
 | |
| 
 | |
|         include_raw = ['Time epoch','Time','Monitor','LT','MT']
 | |
|         self.csv_file = csv_file
 | |
|         df_r = pd.read_csv(self.csv_file,header = 0, usecols = lambda column : any(substr in column for substr in include_raw))
 | |
| 
 | |
|         csv_file_raw = self.csv_file.replace('results_','results_raw_')
 | |
|         df_r.to_csv(csv_file_raw, index = False, header=True)
 | |
| 
 | |
|         '''df_rx_delta = df_r.loc[df['Monitor'] == 'rx_delta']
 | |
| 
 | |
|         df_rx_delta.plot(x='Time epoch', y='average_rx_data')
 | |
|         plt.show()
 | |
| 
 | |
|         total_cols = len(df.axes[0])
 | |
| 
 | |
| 
 | |
|         print(df.columns)
 | |
| 
 | |
|         print(df.loc[df['Monitor'] == 'rx_delta'])
 | |
|         print(df.loc[df['Monitor'] == 'rx'])
 | |
| 
 | |
|         print(df.loc[df['Monitor'] == 'rx_delta', df.columns != 'Time'])
 | |
| 
 | |
| 
 | |
|         df_rx_delta = df.loc[df['Monitor'] == 'rx_delta']
 | |
| 
 | |
|         print(df_rx_delta.describe())
 | |
| 
 | |
|         df_rx_delta.plot(x='Time epoch', y='average_rx_data')
 | |
|         plt.show()
 | |
| 
 | |
|         df_rx_delta.plot(x='Time', y='average_rx_data')
 | |
|         plt.show()
 | |
| 
 | |
|         df_rx_drop_pct = df.loc[df['Monitor'] == 'rx_drop_percent']
 | |
|         print(df_rx_drop_pct)
 | |
|         df_rx_delta.plot(x='Time epoch', y='rx_drop_percent')
 | |
|         plt.show()
 | |
| 
 | |
| 
 | |
|         df2 = df.filter(regex='LT-s')
 | |
|         print(df2)
 | |
|         #plt.plot(df2[0], df2[1]
 | |
|         #plt.show()
 | |
| 
 | |
|         df2_mean = df2.mean().sort_values(ascending=False)
 | |
| 
 | |
|         print(df2_mean)
 | |
| 
 | |
|         df2_mean_no_outliers = df2_mean[df2_mean(df2_mean.quantile(.10), df2_mean.quantile(.90))]
 | |
| 
 | |
|         print("no outliers")
 | |
|         print(df2_mean_no_outliers)
 | |
| 
 | |
|         print("Top 10")
 | |
|         print(df2_mean.head(10))
 | |
|         print("Bottom 10")
 | |
|         print(df2_mean.tail(10))
 | |
| 
 | |
|         print("mean others")
 | |
| 
 | |
| 
 | |
| 
 | |
|         # set display format otherwise get scientific notation
 | |
|         pd.set_option('display.float_format', lambda x: '%.3f' % x)
 | |
| 
 | |
|         df_mean = df_rx_delta.mean().sort_values()
 | |
| 
 | |
|         #print(df_mean)
 | |
| 
 | |
|         print(df_mean[0])
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         #df_uni_cast = [col for col in df_rx_delta if 'LT' in col]
 | |
|         #df_LT_rx_delta_mean = df_uni_cast.mean().sort_values()
 | |
| 
 | |
|         #print(df_LT_rx_delta_mean)
 | |
|         x = np.linspace(0, 20, 100)
 | |
|         plt.plot(x, np.sin(x))
 | |
|         plt.show()'''
 | |
| 
 | |
| 
 | |
| def main():
 | |
| 
 | |
|     #debug_on = False
 | |
|     parser = argparse.ArgumentParser(
 | |
|         prog='csv_processor.py',
 | |
|         formatter_class=argparse.RawTextHelpFormatter,
 | |
|         epilog='''\
 | |
|  Useful Information:
 | |
|             ''',
 | |
|         
 | |
|         description='''quick_test.py:
 | |
| 
 | |
|         ''')
 | |
| 
 | |
| 
 | |
|     parser.add_argument('-i','--infile', help="file of csv data", default='longevity_results_08_14_2020_14_37.csv')
 | |
|     parser.add_argument('--debug', help='--debug:  Enable debugging',default=True)
 | |
| 
 | |
| 
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     #debug_on = args.debug
 | |
| 
 | |
|     if args.infile:
 | |
|         csv_file_name = args.infile
 | |
| 
 | |
|     L3CSVParcer(csv_file_name)
 | |
| 
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |