Analyse de données: L'impact des mobilisations sur les droits des travailleurs.euses

Tags :
  • POK
  • python
  • data
Auteur :
  • Sophia Capdevielle
2024-2025

À l'aide de Python, explorer le lien entre les mobilisations sociales et l’évolution des droits des travailleuses et travailleurs en analysant des données sur les grèves, les revendications et les réformes sociales.

Liens

Les lien utiles pour la compréhension de celui-ci.

Quelques phrases permettant de connaître, sans jargon ni blabla, le contenu de ce POK. On oubliera pas de donner :

Tâches

Sprints

Sprint 1

Sprint 2

Horodatage

Toutes les séances et le nombre d'heure que l'on y a passé.

DateHeures passéesIndications
Jeudi 16/012HCadrage de l'étude et recherche jeux de données
Mercredi 22/012HRecherche données et nettoyage / préparation
Dimanche 26/013HNettoyage / préparation données et documentation librairies Python
Mercredi 29/011HDocumentation Python et début code
Mercredi 19/022HDocumentation Bibliothèques Python
Jeudi 20/022HPremiers graphes
Vendredi 21/022HSuites graphes
Samedi 01/033HSuite graphes et autres jeux de données
Vendredi 07/032HSuite
Mardi 11/031HRédaction

Contenu

Premier Sprint

Dans cette première phase, mon objectif était de cadrer l’étude en définissant clairement les questions auxquelles je souhaite répondre:

Il y en a bcp car je ne suis pas sûre de pouvoir répondre à tout avec les jeux de données trouvés.

Pour répondre à ces questions, j’ai sélectionné plusieurs jeux de données issus de sources officielles :

INSEE:

DARES:

Ces sources ont été choisies pour leur fiabilité et leur complémentarité.

Autres jeux de données à potentielleùment utiliser. Histoire de pouvoir répondre aux questions posées préalablement, j'ai cherché des données plus précises (longueur des grèves, taux de mobilisation, dates, syndicats) et j'ai trouvé des données de la SNCF à analyser sur les mouvements sociaux depuis plusieurs années (.csv)

Une fois les données collectées, j’ai commencé un travail de préparation :

Une fois que j'ai refait mes tableaux tout beaux et bien structurés, je me suis renseignée sur comment faire de l'analyse de données avec Python (j'ai jamais fait). Librairies principales que j'ai exploré:

L’objectif est maintenant d’appliquer ces outils à mon jeu de données et de produire mes premières visualisations et analyses.

Second Sprint

Dans ce second sprint, j'ai continué la documentation sur les différentes librairies python utiles pour l'analyse de données. J'ai notamment regader les cours de M. Brucker pour me guider car je ne savais pas par où commencer.

Ensuite, je suis passée aux graphiques. En voici deux exemples:



import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import os

dares_path = "./DARES"
insee_path = "./INSEE"


def load_csv_from_folder(folder_path):
    dataframes = {}
    for filename in os.listdir(folder_path):
        if filename.endswith('.csv'):
            file_path = os.path.join(folder_path, filename)
            df = pd.read_csv(file_path, sep=';')
            df.replace('NR', pd.NA, inplace=True)
            for col in df.columns:
                try:
                    df[col] = pd.to_numeric(df[col].str.replace(',', '.'), errors='raise')
                except (ValueError, AttributeError):
                    pass
            dataframes[filename[:-4]] = df
    return dataframes

dares_data = load_csv_from_folder(dares_path)
insee_data = load_csv_from_folder(insee_path)


# Nombre de grèves en fonction de la taille de l'entreprise

greve_taille = dares_data['Grève taille entreprise']

plt.figure(figsize=(10, 6))
sns.barplot(x='Taille', y='2022', data=greve_taille, color='#DB7093')
plt.title('Nombre de grèves en fonction de la taille de l\'entreprise en 2022')
plt.xlabel('Taille de l\'entreprise')
plt.ylabel("% d'entreprises ayant déclaré au moins une grève")
plt.show()

# Comparaison entre les différents secteurs d'activité

greve_construction = dares_data['Grève secteur construction']
greve_industrie = dares_data['Grève secteur industrie']
greve_tertiaire = dares_data['Grève secteur tertiaire']

greve_construction_2022 = greve_construction[['Entreprises', '2022']]
greve_industrie_2022 = greve_industrie[['Entreprises', '2022']]
greve_tertiaire_2022 = greve_tertiaire[['Entreprises', '2022']]

industrie_total_2022 = greve_industrie_2022[greve_industrie_2022['Entreprises'] == 'Industrie total']
tertiaire_total_2022 = greve_tertiaire_2022[greve_tertiaire_2022['Entreprises'] == 'Activités tertiaires total']

greve_construction_2022['Secteur'] = 'Construction'
industrie_total_2022['Secteur'] = 'Industrie'
tertiaire_total_2022['Secteur'] = 'Tertiaire'

greve_secteurs_2022 = pd.concat([greve_construction_2022, industrie_total_2022, tertiaire_total_2022], ignore_index=True)


plt.figure(figsize=(10, 6))
sns.barplot(x='Secteur', y='2022', data=greve_secteurs_2022, palette=['#FF69B4', '#C71585', '#DB7093'])
plt.title('Comparaison des taux de grèves par secteur en 2022')
plt.xlabel('Secteur')
plt.ylabel('Taux de grèves (%)')
plt.show()


Ce qui nous donne les graphes suivants:

Graphe 1 On voit bien que plus l'entreprise compte de salariés, plus elle compte de grèves

Graphe 2 Comme historiquement, le secteur de l'industrie est celui qui compte le plus de grèves.

Aussi, j'ai touché à d'autres jeux de données et notamment ceux de la SNCF qui sont présentés différemments et plus précis.

Analyse Post-Mortem

J'ai pas du tout aimé mon POK, j'ai eu du mal à m'y mettre à chaque fois et à avancer. Je pense que l'une des raisons est que je n'y connaissais rien et je ne savais pas par où commencer, j'avais 0 bases. Je m'y suis mal prise j'aurais dû demander de l'aide. Sinon juste je pense que ça ne m'a pas intéressée aussi et c'est pour ça que c'était compliqué d'avancer. Enfin, le thème des données était intéressant et j'ai aimé avoir des chiffres en tête sur ces sujets là et en apprendre plus mais pas faire avec Python.