Adding counting position of skill
This commit is contained in:
parent
959eea9067
commit
e39801f7d2
94
analyse.py
94
analyse.py
|
@ -3,33 +3,55 @@
|
|||
|
||||
import csv
|
||||
import sys
|
||||
import pandas as pd
|
||||
|
||||
|
||||
def skill_frequency(filename) -> None:
|
||||
# def skill_frequency(filename) -> None:
|
||||
def skill_frequency(filename):
|
||||
"""
|
||||
Répertorie toutes les figures contenue dans le fichier et compte le nombre de fois qu'elles
|
||||
apparaissent.
|
||||
La fonction compte aussi le nombre de série, le nombre de série non finie et le nombre de
|
||||
figures.
|
||||
"""
|
||||
skills_dict = dict()
|
||||
number_of_skill = 0
|
||||
number_of_routine = 0
|
||||
number_of_unfinished_routine = 0
|
||||
number_of_tucked = 0
|
||||
number_of_picked = 0
|
||||
number_of_straight = 0
|
||||
|
||||
with open(filename, 'r') as csvfile:
|
||||
csv_reader = csv.reader(csvfile, delimiter=';', quotechar='\'')
|
||||
for line in csv_reader:
|
||||
number_of_routine += 1
|
||||
previous_skill = None
|
||||
skill_in_routine = 0
|
||||
for skill in line:
|
||||
number_of_skill += 1
|
||||
skill_in_routine += 1
|
||||
skills_dict[skill.replace(" ", "")] = skills_dict.get(skill, 0) + 1
|
||||
data = pd.read_csv(filename, delimiter=';')
|
||||
column_list = list(data.columns)
|
||||
|
||||
if skill_in_routine != 10:
|
||||
number_of_unfinished_routine += 1
|
||||
for column in column_list:
|
||||
number_of_routine += 1
|
||||
skill_in_routine = 0
|
||||
for skill in data[column]:
|
||||
number_of_skill += 1
|
||||
skill_in_routine += 1
|
||||
skills_dict[skill] = skills_dict.get(skill, 0) + 1
|
||||
|
||||
return skills_dict, number_of_skill, number_of_routine, number_of_unfinished_routine
|
||||
position = skill.strip()[-1:]
|
||||
if position == 'o':
|
||||
number_of_tucked += 1
|
||||
elif position == '<':
|
||||
number_of_picked += 1
|
||||
elif position == '/':
|
||||
number_of_straight +=1
|
||||
|
||||
if skill_in_routine != 10:
|
||||
number_of_unfinished_routine += 1
|
||||
|
||||
return skills_dict, number_of_skill, number_of_routine, number_of_unfinished_routine, number_of_tucked, number_of_picked, number_of_straight
|
||||
|
||||
|
||||
def setup_combinaison_dictionnary(skills_dict):
|
||||
"""
|
||||
Crée le dictionnaire de combinaison par rapport à toutes les figures contenues dans le
|
||||
dictionnaire de figure.
|
||||
"""
|
||||
combination_dict = dict()
|
||||
|
||||
for key, value in skills_dict.items():
|
||||
|
@ -46,20 +68,24 @@ def setup_combinaison_dictionnary(skills_dict):
|
|||
|
||||
|
||||
def combinaison_frequency(filename, skills_dict):
|
||||
# Definition du second dictionnaire pour les combinaises
|
||||
"""
|
||||
Compte la fréquence des occurences des combinaisons de (deux) figures.
|
||||
"""
|
||||
|
||||
combination_dict = setup_combinaison_dictionnary(skills_dict)
|
||||
|
||||
with open(filename, 'r') as csvfile:
|
||||
csv_reader = csv.reader(csvfile, delimiter=';', quotechar='\'')
|
||||
for line in csv_reader:
|
||||
previous_skill = None
|
||||
for skill in line:
|
||||
if previous_skill is None:
|
||||
combination_dict[skill]['begin'] += 1
|
||||
else:
|
||||
combination_dict[skill][previous_skill] += 1
|
||||
previous_skill = skill
|
||||
combination_dict['end'][previous_skill] += 1
|
||||
data = pd.read_csv(filename, delimiter=';')
|
||||
column_list = list(data.columns)
|
||||
|
||||
for column in column_list:
|
||||
previous_skill = None
|
||||
for skill in data[column]:
|
||||
if previous_skill is None:
|
||||
combination_dict[skill]['begin'] += 1
|
||||
else:
|
||||
combination_dict[skill][previous_skill] += 1
|
||||
previous_skill = skill
|
||||
combination_dict['end'][previous_skill] += 1
|
||||
|
||||
return combination_dict
|
||||
|
||||
|
@ -80,19 +106,14 @@ def export_result_in_csv(filename, skills_dict, combination_dict, number_of_skil
|
|||
writer.writerow([str(skill) + ' - ' + str(following_skill), str(value) , str(value / number_of_routine)])
|
||||
|
||||
|
||||
def print_result() -> None:
|
||||
def print_result(number_of_skill, number_of_routine, number_of_unfinished_routine, number_of_tucked, number_of_picked, number_of_straight) -> None:
|
||||
print('------------------------------------------------------------------------')
|
||||
print('Number of routine: ' + str(number_of_routine))
|
||||
print('Number of unfinished routine: ' + str(number_of_unfinished_routine))
|
||||
print('Number of skill: ' + str(number_of_skill))
|
||||
print('')
|
||||
for key, value in skills_dict.items():
|
||||
print(str(key) + ' : ' + str(value) + ' / ' + str(number_of_routine))
|
||||
print('')
|
||||
for key, v in combination_dict.items():
|
||||
for k, value in combination_dict[key].items():
|
||||
if value != 0:
|
||||
print(str(k) + ' & ' + str(key) + ' : ' + str(value) + ' / ' + str(number_of_routine))
|
||||
print('Number of skill tucked: ' + str(number_of_tucked))
|
||||
print('Number of skill picked: ' + str(number_of_picked))
|
||||
print('Number of skill straight: ' + str(number_of_straight))
|
||||
print('------------------------------------------------------------------------')
|
||||
|
||||
|
||||
|
@ -103,6 +124,7 @@ if __name__ == '__main__':
|
|||
else:
|
||||
filename = sys.argv[1]
|
||||
# il faudrait vérifier que c'est un CSV.
|
||||
skills_dict, number_of_skill, number_of_routine, number_of_unfinished_routine = skill_frequency(filename)
|
||||
skills_dict, number_of_skill, number_of_routine, number_of_unfinished_routine, number_of_tucked, number_of_picked, number_of_straight = skill_frequency(filename)
|
||||
combination_dict = combinaison_frequency(filename, skills_dict)
|
||||
print_result(number_of_skill, number_of_routine, number_of_unfinished_routine, number_of_tucked, number_of_picked, number_of_straight)
|
||||
export_result_in_csv(filename, skills_dict, combination_dict, number_of_skill, number_of_routine, number_of_unfinished_routine)
|
||||
|
|
Loading…
Reference in New Issue