Facebook
From Paweł, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 146
  1. import pandas as pd
  2. import itertools
  3.  
  4. filepath = 'ADR4.dat'
  5.  
  6. vector = []
  7. col_name = ['u', 'u_e', 'g', 'g_e', 'r', 'r_e', 'i', 'i_e', 'z', 'z_e', 'name']
  8.  
  9. columns_to_use = [35] + list(range(19, 29))  
  10. data = pd.read_csv(filepath, sep="\\s+", usecols=columns_to_use, header=None, names=col_name)
  11.  
  12. filtered_data = data.loc[data['name'] != '-']
  13. sorted_data = filtered_data.sort_values(by='name')
  14.  
  15. merged_99_99 = pd.concat([sorted_data[['u', 'g', 'r', 'i', 'z']] == 99.99, sorted_data['name']], axis=1)
  16. merged_9_99 = pd.concat([sorted_data[['u_e', 'g_e', 'r_e', 'i_e', 'z_e']] == 9.99, sorted_data['name']], axis=1)
  17.  
  18.  
  19. counts_99_99 = {}
  20. counts_9_99 = {}
  21.  
  22. for filter_number in range(2, 6):
  23.     for combination in itertools.combinations(['u', 'g', 'r', 'i', 'z'], filter_number):
  24.         count_true = (merged_99_99[list(combination)] == True).any(axis=1).sum()
  25.         counts_99_99[combination] = len(merged_99_99) - count_true
  26.     for combination in itertools.combinations(['u_e', 'g_e', 'r_e', 'i_e', 'z_e'], filter_number):
  27.         count_true = (merged_9_99[list(combination)] == True).any(axis=1).sum()
  28.         counts_9_99[combination] = len(merged_9_99) - count_true
  29.  
  30. print(counts_99_99, '\n', counts_9_99)
  31.  
  32.