diff --git a/.gitignore b/.gitignore
index 9f76b71..d379779 100644
--- a/.gitignore
+++ b/.gitignore
@@ -161,5 +161,5 @@ cython_debug/
# Precommit hooks: ruff cache
.ruff_cache
-
+.DS_Store
data/
\ No newline at end of file
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 80d7fab..510b0cc 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,7 +1,7 @@
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
# Ruff version.
- rev: "v0.0.254"
+ rev: "v0.3.7"
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
diff --git a/app/README.md b/app/README.md
new file mode 100644
index 0000000..ae102df
--- /dev/null
+++ b/app/README.md
@@ -0,0 +1,5 @@
+Pour exécuter l'application Streamlit de , lancer la commande suivante depuis ce répertoire :
+ `streamlit run odi_streamlit.py`
+
+Note:
+L'application streamlit `analyse_app_OLD.py` sera à supprimer.
diff --git a/app/analyse_app_OLD.py b/app/analyse_app_OLD.py
new file mode 100644
index 0000000..dce7f36
--- /dev/null
+++ b/app/analyse_app_OLD.py
@@ -0,0 +1,63 @@
+"""
+# My first app with Streamlit https://streamlit.io/
+Here's our first attempt at using data to create a table:
+"""
+
+import matplotlib.pyplot as plt
+import pandas as pd
+import streamlit as st
+
+st.title("Observatoire des Imaginaires")
+st.divider()
+st.header("Fait par la dream team _Analyse de données_")
+st.write(
+ (
+ "Cette application analyse les données du PoC. On peut se faire plaisir"
+ " en y ajoutant tous les graphiques nécessaires. "
+ "Le code est à nettoyer pour une meilleure maintenance ;-) "
+ ),
+)
+
+
+st.container()
+st.header("Aperçu des données")
+# Load the data
+file_path = "../data/Analyse réponses.xlsx - Treated data.csv"
+
+# ne pas lire la première ligne
+data = pd.read_csv(file_path, skiprows=1)
+
+# Supprimer les lignes où la première colonne contient "Contenu XXX"
+# XXX est un nombre
+# Et Supprimer les lignes où toutes les valeurs sont NaN
+df = data[~data["TITRE"].str.contains(r"Contenu \d+", na=False)].dropna(how="all")
+
+# ne conserver qu'une ligne sur 4 (ce qui revient à supprimer les informations
+# des personnages 2, 3, 4 quand ils existent)
+df_truncated = df.iloc[::4]
+# Nettoyage du data set
+
+# mettre les titres en majuscule
+df_truncated["TITRE"] = df_truncated["TITRE"].str.upper()
+
+### Convertir les types de données correctement ici
+# Convertir les années en entier
+annee = "ANNEE"
+df_truncated[annee] = pd.to_numeric(df_truncated[annee], errors="coerce").fillna(0).astype(int)
+# Trouver les titres qui apparaissent plus de 4 fois dans la colonne "TITRE"
+# (car chaque titre a 4 lignes, une pour chaque personnage)
+titles_more_than_once = df_truncated["TITRE"].value_counts()
+titles_more_than_once = titles_more_than_once[titles_more_than_once > 1]
+
+# Afficher un bar chart des titres les plus fréquents
+# Affichage d'un bar chart horizontal
+
+
+st.header("Films les plus fréquents")
+# Création du graphique
+fig, ax = plt.subplots()
+t = titles_more_than_once.sort_values(ascending=True)
+t.plot(kind="barh", color="skyblue", ax=ax)
+ax.set_xlabel("Nb")
+ax.set_title("Fréquence des films/séries")
+st.pyplot(fig)
diff --git a/app/odi_streamlit.py b/app/odi_streamlit.py
new file mode 100644
index 0000000..6efc676
--- /dev/null
+++ b/app/odi_streamlit.py
@@ -0,0 +1,354 @@
+"""
+# My first app with Streamlit https://streamlit.io/
+Here's our first attempt at using data to create a table:
+"""
+
+
+# Export fichier
+
+# Datavisualisation
+
+import pandas as pd
+import plotly.express as px
+
+# O.Importation des librairies nécessaires pour le script
+# Core Pkgs - Web application
+import streamlit as st
+
+# Other Pkgs
+
+# 3.Setup de l'application Streamlit - Streamlit webpage properties / set up the app
+# with wide view preset and a title
+st.set_page_config(
+ page_title="Observatoire des Imaginaires",
+ page_icon="herb",
+ layout="wide",
+)
+
+
+@st.cache_data # 👈 Add the caching decorator
+def load_data(file: str) -> pd.DataFrame:
+ df = pd.read_csv(file, skiprows=1)
+ return df
+
+
+# Load the data
+file_path = "../data/AnalyseReponsesTreatedData.csv" #'../data/Analyse réponses.xlsx - Treated data.csv' # noqa: E501
+# ne pas lire la première ligne
+data = load_data(file_path)
+
+
+# if 'df' not in st.session_state:
+# if 'dico' not in st.session_state:
+# if 'liste_ean' not in st.session_state:
+# if 'select_editeur' not in st.session_state:
+# if 'liste_ouvrage' not in st.session_state:
+#
+## 1. Classe lancée si choix de "rentrée littéraire" dans le menu en sidebar
+# class InfoRentreeLitt():
+# def get_data(df,dico):
+
+
+### A. Sidebar
+with st.sidebar:
+ st.image(
+ "https://media.licdn.com/dms/image/D4E0BAQEZHVBxFn3OXQ/company-logo_200_200/0/1697116934909/cercle_thmatique_culture_the_shifters_logo?e=1718841600&v=beta&t=_2DWaEBrblIgXhgVASUipHTcJesOL6s1Sk2uH73Kx58",
+ use_column_width=True,
+ ) # width=50
+
+ st.title("Fait par la dream team _Analyse de données_")
+ st.write(
+ (
+ "Cette application analyse les données du PoC. On peut se faire plaisir"
+ " en y ajoutant tous les graphiques nécessaires. "
+ "Le code est à nettoyer pour une meilleure maintenance ;-) "
+ ),
+ )
+
+
+### B. Container du header
+header = st.container()
+header.title("Observatoire des Imaginaires")
+header.write("""
""", unsafe_allow_html=True)
+
+### Custom CSS for the sticky header #74d1b4
+# st.markdown(
+# """
+#
+# """,
+
+### C. Container des métriques
+cont_metric = st.container(border=True) # border = True
+
+
+# Supprimer les lignes où la première colonne contient "Contenu XXX"
+# XXX est un nombre
+# Et Supprimer les lignes où toutes les valeurs sont NaN
+df = data[~data["TITRE"].str.contains(r"Contenu \d+", na=False)].dropna(how="all")
+
+# ne conserver qu'une ligne sur 4 (ce qui revient à supprimer
+# les informations des personnages 2, 3, 4 quand ils existent)
+df_truncated = df.iloc[::4]
+
+# Nettoyage du data set
+
+# mettre les titres en majuscule
+df_truncated["TITRE"] = df_truncated["TITRE"].str.upper()
+# mettre les pays en majuscule et supprimer les espaces au début et à la fin
+df_truncated["PAYS"] = df_truncated["PAYS"].str.strip().str.upper()
+df_truncated["PAYS"] = df_truncated["PAYS"].apply(lambda p: p.replace(" ET ", ";"))
+df_truncated.insert(
+ 3,
+ "pays_rework",
+ [
+ pays if len(pays.split(";")) == 1 else "INTERNATIONAL"
+ for pays in df_truncated["PAYS"]
+ ],
+)
+
+### Convertir les types de données correctement ici
+# Convertir les années en entier
+annee = "ANNEE"
+df_truncated[annee] = (
+ pd.to_numeric(df_truncated[annee], errors="coerce").fillna(0).astype(int)
+)
+
+with cont_metric:
+ with st.expander("Aperçu des donnéess"):
+ st.dataframe(df_truncated)
+
+ ### A. Affichage des métriques macro
+ col_nb_livre, col_nb_editeur, col_nb_prem_roman = st.columns([2, 2, 2])
+ with col_nb_livre:
+ # Metric nb Ouvrages
+ st.metric(label="Oeuvres analysées", value=len(set(df_truncated["TITRE"])))
+ with col_nb_editeur:
+ # Metric nb Editeurs
+ st.metric(
+ label="Films",
+ value=len(set(df_truncated[df_truncated.TYPE == "FILM"]["TITRE"])),
+ )
+ with col_nb_prem_roman:
+ # Metric Premier Roman
+ st.metric(
+ label="Séries",
+ value=len(set(df_truncated[df_truncated.TYPE == "SÉRIE"]["TITRE"])),
+ )
+
+ st.write()
+ st.write(
+ f":blue[{round(100*len(set(df_truncated[df_truncated.TYPE == 'FILM']['TITRE']))/len(set(df_truncated['TITRE'])),2)}%] des contenus renseignés sont des films vs :blue[{round(100*len(set(df_truncated[df_truncated.TYPE == 'SÉRIE']['TITRE']))/len(set(df_truncated['TITRE'])),2)}%] des séries.", # noqa: E501
+ )
+
+# Trouver les titres qui apparaissent plus de 4 fois dans la colonne "TITRE"
+# (car chaque titre a 4 lignes, une pour chaque personnage)
+
+
+titles_more_than_once = (
+ df_truncated.groupby(["TITRE", "TYPE"]).agg(compte=("TITRE", "count")).reset_index()
+)
+titles_more_than_once = titles_more_than_once[titles_more_than_once["compte"] > 1]
+
+
+# Afficher un bar chart des titres les plus fréquents
+# Affichage d'un bar chart horizontal
+
+with st.container(border=True):
+ st.header("Films les plus fréquents")
+ col_freq_film_select, col_freq_film_vide, col_freq_film_graph = st.columns(
+ [2, 0.5, 5],
+ )
+ with col_freq_film_select:
+ type_choice = st.selectbox(
+ "Choisir un type",
+ titles_more_than_once["TYPE"].unique(),
+ index=None,
+ )
+ with col_freq_film_graph:
+ if type_choice == "FILM":
+ t = titles_more_than_once.loc[
+ titles_more_than_once["TYPE"] == "FILM"
+ ].sort_values(
+ by="compte",
+ ascending=True,
+ )
+ elif type_choice == "SÉRIE":
+ t = titles_more_than_once.loc[
+ titles_more_than_once["TYPE"] == "SÉRIE"
+ ].sort_values(
+ by="compte",
+ ascending=True,
+ )
+ else:
+ t = titles_more_than_once.sort_values(by="compte", ascending=True)
+
+ st.bar_chart(t, x="TITRE", y="compte")
+
+# Types de contenus et pays d'origine
+with st.container(border=True):
+ st.header("Types de contenus")
+ col_contenu_date, col_contenu_vide, col_contenu_graph = st.columns([4, 0.5, 4])
+
+ with col_contenu_date:
+ date_group_df = (
+ df_truncated.groupby("ANNEE")
+ .count()
+ .reset_index()[["ANNEE", "TITRE"]]
+ .rename(columns={"TITRE": "nb_titre"})
+ )
+ date_group_df["periode_percent"] = 100 * (
+ 1 - (date_group_df.nb_titre.cumsum() / date_group_df.nb_titre.sum())
+ )
+
+ date_min = str(df_truncated.ANNEE.min())
+ date_max = str(df_truncated.ANNEE.max())
+ date_pareto = (
+ date_group_df[date_group_df["periode_percent"] <= 80]["ANNEE"].min() # noqa: PLR2004
+ )
+ date_value_pareto = int(
+ round(
+ date_group_df[date_group_df["periode_percent"] <= 80][ # noqa: PLR2004
+ "periode_percent"
+ ].max(),
+ 0,
+ ),
+ )
+
+ st.markdown(
+ (
+ f"Les contenus datent d`une période qui s`étend de {date_min}"
+ f" à {date_max}. {date_value_pareto}% des contenus sont postérieurs à"
+ f" {date_pareto}."
+ ),
+ )
+
+ st.bar_chart(date_group_df, x="ANNEE", y="nb_titre")
+
+ with col_contenu_graph:
+ country_group_df = df_truncated
+ country_group_df = (
+ country_group_df.groupby("pays_rework")
+ .count()
+ .reset_index()[["pays_rework", "TITRE"]]
+ .rename(columns={"TITRE": "nb_titre"})
+ .sort_values("nb_titre")
+ )
+ country_group_df["country_percent_cumul"] = round(
+ 100
+ * (
+ 1
+ - (country_group_df.nb_titre.cumsum() / country_group_df.nb_titre.sum())
+ ),
+ 0,
+ )
+ country_group_df["country_percent"] = round(
+ 100 * (country_group_df.nb_titre / country_group_df.nb_titre.sum()),
+ 2,
+ )
+
+ country_value_pareto = int(
+ round(
+ country_group_df[country_group_df["country_percent"] >= 10][ # noqa: PLR2004
+ "country_percent"
+ ].sum(),
+ 2,
+ ),
+ )
+ country_group_df_pareto = country_group_df[
+ country_group_df["country_percent"] >= 10 # noqa: PLR2004
+ ][["pays_rework", "country_percent"]].sort_values(
+ "country_percent",
+ ascending=False,
+ )
+
+ st.write(
+ f"A **:blue[{country_value_pareto}%]**, les 2 principaux pays dont les contenus sont les plus visionnés sont : {country_group_df.nlargest(2,'country_percent').reset_index(drop=True)['pays_rework'][0].capitalize()} ({country_group_df.nlargest(2,'country_percent').reset_index(drop=True)['country_percent'][0]}%) et {country_group_df.nlargest(2,'country_percent').reset_index(drop=True)['pays_rework'][1].capitalize()} ({country_group_df.nlargest(2,'country_percent').reset_index(drop=True)['country_percent'][1]}%).", # noqa: E501
+ )
+
+ fig_type = px.bar(
+ country_group_df,
+ y="pays_rework",
+ x="nb_titre",
+ orientation="h",
+ text_auto=True,
+ )
+ st.plotly_chart(fig_type, use_container_width=True)
+
+# LIEUX VISIONNAGE
+with st.container(border=True):
+ canal_group_df = (
+ df_truncated.groupby("CANAL")
+ .count()[["TITRE"]]
+ .rename(columns={"TITRE": "nb_titre"})
+ .sort_values("nb_titre", ascending=False)
+ )
+ canal_group_df["canal_percent"] = 100 * (
+ canal_group_df.nb_titre / canal_group_df.nb_titre.sum()
+ )
+ canal_country_group_df = (
+ df_truncated.groupby(["CANAL", "pays_rework"])
+ .count()[["TITRE"]]
+ .rename(columns={"TITRE": "nb_titre"})
+ .sort_values("nb_titre", ascending=False)
+ .reset_index()
+ )
+
+ col_text_canal, col_table_canal = st.columns([5, 3])
+ with col_text_canal:
+ canal_visionne1 = canal_group_df.nb_titre.nlargest(2).reset_index()["CANAL"][0]
+ percent_canal_visionne1 = round(canal_group_df.canal_percent.nlargest(2)[0], 2)
+ canal_visionne2 = canal_group_df.nb_titre.nlargest(2).reset_index()["CANAL"][1]
+ percent_canal_visionne2 = round(canal_group_df.canal_percent.nlargest(2)[1], 2)
+
+ st.markdown(
+ f"Les contenus sont visionnés principalement sur :blue[{canal_visionne1.capitalize()}] (:blue[{percent_canal_visionne1}%]) et :blue[{canal_visionne2.capitalize()}] (:blue[{percent_canal_visionne2}%]).\n\n La majorité des contenus visionnés sur :blue[{canal_visionne1.capitalize()}] ont pour pays d'origine :blue[{canal_country_group_df[canal_country_group_df['CANAL']==canal_visionne1].nlargest(1,'nb_titre').reset_index()['pays_rework'][0]}] (:blue[%]), alors que la majorité des contenus français sont visionnés xxx (xxx%).\n\n :blue[{round(canal_group_df.loc['Autre','canal_percent'],2)}%] des contenus sont visionnés sur un canal `Autre` que la liste proposée (cf ci-contre)", # noqa: E501
+ )
+
+ # Les contenus sont visionnés principalement sur Netflix (29.91%) ou dans
+ # une salle de cinéma (28.97%). La majorité des contenus américains sont
+ # visionnés sur Netflix (40.48% des contenus US), alors que la majorité
+ # des contenus français sont visionnés au cinéma (44.19%).
+ # 23.36% des contenus sont visionnés sur un canal `autre`
+ # que la liste proposée (cf ci-dessous)
+
+ with col_table_canal:
+ st.markdown(set(canal_group_df.reset_index().CANAL))
+
+st.subheader("EPOQUE DE RECITS")
+st.write(set(df_truncated["EPOQUE DU RECIT"]))
+
+st.subheader("TYPE DE MONDE")
+st.write(set(df_truncated["TYPE DE MONDE"]))
+st.dataframe(
+ df_truncated[["TITRE", "TRAITEMENT DU RECIT", "TYPE DE MONDE"]]
+ .groupby(["TRAITEMENT DU RECIT", "TYPE DE MONDE"])
+ .count(),
+)
+
+#
+# with st.container():
+
+#
+# fig.add_trace(go.Pie(labels=gender_viz_crew.gender_text, values=gender_viz_crew.nb_by_genre, name="Equipe tech"), # noqa: E501
+# 1, 2)
+#
+#
+#
+#
+# fig.update_layout(width = 400,
+# margin=dict(t=0, b=0, l=0, r=0),)
+# x=1),
+# Add annotations in the center of the donut pies.
+# annotations=[dict(text='Casting', x=0.15, y=0.5, font_size=20, showarrow=False),
+# dict(text='Crew', x=0.83, y=0.5, font_size=20, showarrow=False)])
+#
+#
+# data=[go.Bar(x=country_group_df.pays_rework ,
+# y=country_group_df.nb_titre)])
+#
+# with colinfofilm.expander("Table de données"):
diff --git a/notebooks/analyse-poc-treated-data.ipynb b/notebooks/analyse-poc-treated-data.ipynb
new file mode 100644
index 0000000..3af52f9
--- /dev/null
+++ b/notebooks/analyse-poc-treated-data.ipynb
@@ -0,0 +1,735 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "title: \"Analyse des résultats (PoC V1)\"\n",
+ "format: html\n",
+ "---\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/s4/6jbnvfsj1v10f2txtlkndj5w0000gp/T/ipykernel_38954/2759663841.py:8: DeprecationWarning: \n",
+ "Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),\n",
+ "(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)\n",
+ "but was not found to be installed on your system.\n",
+ "If this would cause problems for you,\n",
+ "please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466\n",
+ " \n",
+ " import pandas as pd\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
TITRE
\n",
+ "
ANNEE
\n",
+ "
PAYS
\n",
+ "
CANAL
\n",
+ "
TYPE
\n",
+ "
SAISON
\n",
+ "
LIEU(X) DE L'ACTION
\n",
+ "
EPOQUE DU RECIT
\n",
+ "
TRAITEMENT DU RECIT
\n",
+ "
TYPE DE MONDE
\n",
+ "
...
\n",
+ "
Epoque
\n",
+ "
Traitement
\n",
+ "
Monde
\n",
+ "
Genre
\n",
+ "
Conso
\n",
+ "
Vie
\n",
+ "
Vivant
\n",
+ "
Climat
\n",
+ "
Recul
\n",
+ "
Nécessité
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Une nuit
\n",
+ "
2023.0
\n",
+ "
France
\n",
+ "
SALLE DE CINÉMA
\n",
+ "
FILM
\n",
+ "
NaN
\n",
+ "
France, Paris
\n",
+ "
2020-2030
\n",
+ "
Ni dystopique ni utopique
\n",
+ "
Réaliste (monde proche du nôtre dans son fonct...
\n",
+ "
...
\n",
+ "
2020-2030
\n",
+ "
Ni dystopique ni utopique
\n",
+ "
Réaliste (monde proche du nôtre dans son fonct...
\n",
+ "
Comédie-romantique
\n",
+ "
-1.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
Non applicable, les scores obtenus sont neutre...
\n",
+ "
Non applicable, les scores obtenus sont neutre...
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
...
\n",
+ "
2020-2030
\n",
+ "
Ni dystopique ni utopique
\n",
+ "
Réaliste (monde proche du nôtre dans son fonct...
\n",
+ "
Comédie-romantique
\n",
+ "
-1.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
Non applicable, les scores obtenus sont neutre...
\n",
+ "
Non applicable, les scores obtenus sont neutre...
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
2 rows × 104 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " TITRE ANNEE PAYS CANAL TYPE SAISON LIEU(X) DE L'ACTION \\\n",
+ "0 Une nuit 2023.0 France SALLE DE CINÉMA FILM NaN France, Paris \n",
+ "1 NaN NaN NaN NaN NaN NaN NaN \n",
+ "\n",
+ " EPOQUE DU RECIT TRAITEMENT DU RECIT \\\n",
+ "0 2020-2030 Ni dystopique ni utopique \n",
+ "1 NaN NaN \n",
+ "\n",
+ " TYPE DE MONDE ... Epoque \\\n",
+ "0 Réaliste (monde proche du nôtre dans son fonct... ... 2020-2030 \n",
+ "1 NaN ... 2020-2030 \n",
+ "\n",
+ " Traitement \\\n",
+ "0 Ni dystopique ni utopique \n",
+ "1 Ni dystopique ni utopique \n",
+ "\n",
+ " Monde Genre \\\n",
+ "0 Réaliste (monde proche du nôtre dans son fonct... Comédie-romantique \n",
+ "1 Réaliste (monde proche du nôtre dans son fonct... Comédie-romantique \n",
+ "\n",
+ " Conso Vie Vivant Climat \\\n",
+ "0 -1.0 0.0 0.0 0.0 \n",
+ "1 -1.0 0.0 0.0 0.0 \n",
+ "\n",
+ " Recul \\\n",
+ "0 Non applicable, les scores obtenus sont neutre... \n",
+ "1 Non applicable, les scores obtenus sont neutre... \n",
+ "\n",
+ " Nécessité \n",
+ "0 Non applicable, les scores obtenus sont neutre... \n",
+ "1 Non applicable, les scores obtenus sont neutre... \n",
+ "\n",
+ "[2 rows x 104 columns]"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Getting started\n",
+ "\n",
+ "# A simple notebooks for testing some analyses on the first version of the questionnaire.\n",
+ "# Data are not pushed to github due to privacy reasons. \n",
+ "# The raw_data.csv should be copied to the data/ folder. \n",
+ "\n",
+ "# Let's first load the data to understand its structure and then compute general statistical information.\n",
+ "import pandas as pd\n",
+ "\n",
+ "# Load the data\n",
+ "file_path = '../data/Analyse réponses.xlsx - Treated data.csv'\n",
+ "\n",
+ "# ne pas lire la première ligne\n",
+ "data = pd.read_csv(file_path, skiprows=1)\n",
+ "\n",
+ "# Display the first few rows of the dataframe to understand its structure\n",
+ "data.head(2)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "['TITRE', 'ANNEE', 'PAYS', 'CANAL', 'TYPE', 'SAISON', \"LIEU(X) DE L'ACTION\", 'EPOQUE DU RECIT', 'TRAITEMENT DU RECIT', 'TYPE DE MONDE', 'GENRE', 'POSITION DANS LE RECIT', 'GENRE.1', 'AGE', 'ETHNICITÉ', 'BEAUTE', 'POIDS', 'PAYS DE RESIDENCE', \"TYPE D'HABITAT\", \"LIEU D'HABITAT\", 'Appartement', 'Colocation', 'Maison', 'Studio', 'Hôtel', 'Ferme', 'Alternatif / Communautaire', 'Ne sait pas / Autre', 'ACTIVITE', \"SECTEUR D'ACTIVITE\", 'CATEGORIE SOCIALE', 'ASPIRATIONS', 'Unnamed: 32', 'Unnamed: 33', 'Unnamed: 34', 'Unnamed: 35', 'Unnamed: 36', 'Unnamed: 37', 'Unnamed: 38', 'Unnamed: 39', 'Unnamed: 40', 'Unnamed: 41', 'Unnamed: 42', 'Unnamed: 43', 'Unnamed: 44', 'Unnamed: 45', 'Unnamed: 46', 'Unnamed: 47', 'Unnamed: 48', 'Unnamed: 49', 'Unnamed: 50', 'Unnamed: 51', 'VALEURS / TRAITS DE CARACTÈRE', 'Unnamed: 53', 'Unnamed: 54', 'Unnamed: 55', 'Unnamed: 56', 'Unnamed: 57', 'Unnamed: 58', 'Unnamed: 59', 'Unnamed: 60', 'Unnamed: 61', 'Unnamed: 62', 'Unnamed: 63', 'Unnamed: 64', 'Unnamed: 65', 'Unnamed: 66', 'Unnamed: 67', 'Unnamed: 68', 'Unnamed: 69', 'Unnamed: 70', 'Unnamed: 71', 'Unnamed: 72', 'EMPREINTE PERSO', 'CONSOMMATION & MATERIALISME', 'CONSOMMATION & MATERIALISME.1', 'MODES DE VIE', 'MODES DE VIE.1', 'RAPPORT AU VIVANT', 'RAPPORT AU VIVANT.1', 'CRISE ENVIRONNEMENTALE', 'CRISE ENVIRONNEMENTALE.1', 'Y A-T-IL UNE PRISE DE RECUL ?', 'EST-CE NECESSAIRE ?', 'QUELQUE CHOSE A AJOUTER ?', 'VOTRE EMAIL ?', 'Label / corpus', 'TYPOLOGIE', 'Corpus', 'Année', 'Pays', 'Canal', 'Type', 'Lieux action', 'Epoque', 'Traitement', 'Monde', 'Genre', 'Conso', 'Vie', 'Vivant', 'Climat', 'Recul', 'Nécessité']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# colonnes\n",
+ "print(list(data.columns))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "nb lignes et nb colonnes\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(812, 104)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Supprimer les lignes où la première colonne contient \"Contenu XXX\"\n",
+ "# XXX est un nombre\n",
+ "# Et Supprimer les lignes où toutes les valeurs sont NaN\n",
+ "df = data[~data['TITRE'].str.contains(r'Contenu \\d+', na=False)].dropna(how='all')\n",
+ "print('nb lignes et nb colonnes')\n",
+ "df.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nombre de réponses analysées : 203\n",
+ "Nombre de colonnes dans l'analyse : 104\n"
+ ]
+ }
+ ],
+ "source": [
+ "# ne conserver qu'une ligne sur 4 (ce qui revient à supprimer les informations des personnages 2, 3, 4 quand ils existent)\n",
+ "df_truncated = df.iloc[::4]\n",
+ "\n",
+ "# Pour afficher séparément le nombre de lignes et de colonnes\n",
+ "nb_lignes, nb_colonnes = df_truncated.shape\n",
+ "print(f\"Nombre de réponses analysées : {nb_lignes}\")\n",
+ "print(f\"Nombre de colonnes dans l'analyse : {nb_colonnes}\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/s4/6jbnvfsj1v10f2txtlkndj5w0000gp/T/ipykernel_38954/3001236423.py:4: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " df_truncated['TITRE'] = df_truncated['TITRE'].str.upper()\n",
+ "/var/folders/s4/6jbnvfsj1v10f2txtlkndj5w0000gp/T/ipykernel_38954/3001236423.py:9: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " df_truncated[annee] = pd.to_numeric(df_truncated[annee], errors='coerce').fillna(0).astype(int)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Nettoyage du data set\n",
+ "\n",
+ "# mettre les titres en majuscule \n",
+ "df_truncated['TITRE'] = df_truncated['TITRE'].str.upper()\n",
+ "\n",
+ "### Convertir les types de données correctement ici \n",
+ "# Convertir les années en entier\n",
+ "annee = \"ANNEE\"\n",
+ "df_truncated[annee] = pd.to_numeric(df_truncated[annee], errors='coerce').fillna(0).astype(int)\n",
+ "\n",
+ "# print(df_truncated.dtypes) # Afficher les types de données des colonnes pour vérifier\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "TITRE\n",
+ "POLAR PARK 6\n",
+ "LE RÈGNE ANIMAL 4\n",
+ "UNE ANNÉE DIFFICILE 3\n",
+ "SAMBRE 3\n",
+ "VOLEUSES 2\n",
+ "SECOND TOUR 2\n",
+ "THE CROWN 2\n",
+ "PAST LIVES 2\n",
+ "BODIES 2\n",
+ "LE LIVRE DES SOLUTIONS 2\n",
+ "À PLEIN TEMPS 2\n",
+ "REVOIR PARIS 2\n",
+ "D'ARGENT ET DE SANG 2\n",
+ "YANNICK 2\n",
+ "SENSE8 2\n",
+ "ANATOMIE D'UNE CHUTE 2\n",
+ "LE THÉORÈME DE MARGUERITE 2\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Trouver les titres qui apparaissent plus de 4 fois dans la colonne \"TITRE\" (car chaque titre a 4 lignes, une pour chaque personnage)\n",
+ "titles_more_than_once = df_truncated['TITRE'].value_counts()\n",
+ "titles_more_than_once = titles_more_than_once[titles_more_than_once > 1]\n",
+ "\n",
+ "titles_more_than_once\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABBIAAAIjCAYAAAC+rjj0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChq0lEQVR4nOzdd3RU1fr/8c+QQAoTJhBKAoYaEiBUCyAIBIUbiqBIC9JiYgREpChdAaMCIk1BrCmg9CpyFaVFkCIiBKRJjeAlUYwkoQYC8/uDX+bLOJPkBIKgvF9r7bWcfXZ5zplw1z3P7LOPyWq1WgUAAAAAAGBAoTsdAAAAAAAA+OcgkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAAAAAwjkQAAAAD8A1y5ckUTJ07UF198cadDAXCPI5EAAAD+ceLj42UymbRjx447HcpdY9y4cTKZTHc6jAJRsWJFhYeH31TfpKQkmUwmxcfHF1g8JpNJ48aNK7DxbtaIESP0ySefqGHDhob7ZP9bSUpKun2BAbjnkEgAAOAel32jcWMpXbq0mjdvrq+++upvj2f58uVq3bq1SpYsqSJFiqhs2bLq0qWL1q9f/7fHkm3WrFn5ujE1mUx64YUXnB77tydBvvzyy7vipvtudu7cOY0dO1Y1a9ZU0aJF5ePjo7p162rgwIE6deqU0z6ff/65PvvsM61evVqlSpX6myMGAHskEgAAgCQpOjpan376qebMmaNhw4bp9OnTatOmjVatWvW3zG+1WvXMM8/oqaee0m+//aYhQ4bogw8+UP/+/XXs2DE99thj2rJly98Sy1/lN5FwJ7zyyiu6ePHinQ5DX375pV577bU7HcZd68qVK2ratKnefvttNWnSRFOnTtWoUaN0//33a968eTp06JDTfklJSfrqq68UEBCQr/l69uypixcvqkKFCgURPgBIklzvdAAAAODu0Lp1az344IO2z5GRkSpTpozmz5+vxx9//JbHv3btmi5fvix3d3enx6dMmaL4+HgNGjRIU6dOtVumP3r0aH366adydf17/6/LhQsX5Onp+bfOmV/nz59X0aJF5erq+rdfH+TfihUrtGvXLs2dO1dPP/203bFLly7p8uXLTvsNHDgwX/Nk/124uLjIxcXlpuMFAGdYkQAAAJzy9vaWh4eHw83p5MmT1ahRI/n4+MjDw0MPPPCAlixZ4tA/e3n/3LlzFRwcLDc3N61evdrpXBcvXtSECRNUrVo1TZ482emz/j179lT9+vXt6jIzMzVkyBCVKlVKRYsWVYcOHXT69Gm7Np9//rnatm2rsmXLys3NTVWqVNHrr7+uq1ev2rULCQlRzZo19eOPP6pp06by9PTUqFGjVLFiRe3bt0/ffvut7dGPkJAQI5cwX9avX68mTZqoaNGi8vb21hNPPKEDBw7YtcneB2H//v16+umnVbx4cT3yyCN2x7KFh4c7PLKSXW589OD333+3JY3c3d1Vp04dzZ49227e7H0HJk+erI8++khVqlSRm5ubHnroIf3www92c7733nuSZDdfNqN/O0alpaUpPDxcFotF3t7e6t27t9LS0py2PXjwoDp16qQSJUrI3d1dDz74oFauXHlT8/7yyy96/vnnFRQUJA8PD/n4+Khz586G9iE4evSoJKlx48YOx9zd3VWsWLF8x539uMy3336r559/XqVLl9Z9991nd+yvsX311Ve2vzcvLy+1bdtW+/bty8dVAHAvI20NAAAkSenp6frjjz9ktVr1+++/a8aMGTp37px69Ohh1+6dd95R+/bt1b17d12+fFkLFixQ586dtWrVKrVt29au7fr167Vo0SK98MILKlmypCpWrOh07u+++05//vmnBg0alK9fTwcMGKDixYtr7NixSkpK0vTp0/XCCy9o4cKFtjbx8fEym80aMmSIzGaz1q9frzFjxigjI0Nvv/223Xipqalq3bq1wsLC1KNHD5UpU0YhISEaMGCAzGazRo8eLUkqU6ZMnrFdunRJf/zxh0P9uXPnHOrWrl2r1q1bq3Llyho3bpwuXryoGTNmqHHjxtq5c6fDdevcubOqVq2q8ePHy2q1Op2/T58+atGihV3d6tWrNXfuXJUuXVrS9QROSEiIjhw5ohdeeEGVKlXS4sWLFR4errS0NIdfwefNm6ezZ8+qT58+MplMmjRpkp566ikdO3ZMhQsXVp8+fXTq1CmtWbNGn376qUNM+fnbyYvVatUTTzyh7777Tn379lX16tW1fPly9e7d26Htvn371LhxY5UrV04jRoxQ0aJFtWjRIj355JNaunSpOnTokK+5f/jhB23ZskVhYWG67777lJSUpPfff18hISHav39/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HnF4O0W2Nm3aKCUlxe4tF1lZWZoxY4bMZrOaNWuW73mzkx5/vV4F/bfTpk0bZWVl6f3337fVXb16VTNmzLBrV7p0aYWEhOjDDz9UcnKywzh/fV2oES4uLg5/ozNmzHB4pagzu3fvdvo2j19++UX79++3PZpxO+KWpNDQUBUrVkzjx4/XlStXCmxcAPcWViQAAABJ198rn/1L9O+//6558+bp8OHDGjFihO256bZt22rq1Klq1aqVnn76af3+++967733FBAQoD179tzS/EOHDtW+ffs0ZcoUbdiwQZ06dZKvr69SUlK0YsUKbd++XVu2bMnXmI0aNVLx4sXVu3dvvfjiizKZTPr0008NLcW/0QMPPKD3339fb7zxhgICAlS6dOkcnzG/GW+//bZat26thx9+WJGRkbbXP1osFo0bN+6mxnzxxRd1+vRpDRs2TAsWLLA7Vrt2bdWuXVvPPfecPvzwQ4WHh+vHH39UxYoVtWTJEm3evFnTp0/P9+aX0vVrlT1/aGioXFxcFBYWVuB/O+3atVPjxo01YsQIJSUlqUaNGlq2bJnTPQree+89PfLII6pVq5aioqJUuXJl/fbbb9q6dat+/fVX7d69O19zP/744/r0009lsVhUo0YNbd26VWvXrrXbfyIna9as0dixY9W+fXs1bNhQZrNZx44dU2xsrDIzM+2+74KOW7q+B8L777+vnj176v7771dYWJhKlSqlEydO6L///a8aN26smTNn5ntcAPeYO/a+CAAAcFdw9vpHd3d3a926da3vv/++3esVrVarNSYmxlq1alWrm5ubtVq1ata4uDinrx6UZO3fv3++41myZIn1P//5j7VEiRJWV1dXq5+fn7Vr167WhIQEh5hvfIWi1Wq1btiwwSrJumHDBlvd5s2brQ0bNrR6eHhYy5Ytax02bJj166+/dmjXrFkza3BwsNOYUlJSrG3btrV6eXlZJeX5Ksjczj2n2NeuXWtt3Lix1cPDw1qsWDFru3btrPv377drk32dT58+7TDuX7+D7NdZOis3vsrwt99+sz7zzDPWkiVLWosUKWKtVauW3asTrdb/e/3j22+/7fRcbxwvKyvLOmDAAGupUqWsJpPJLiajfztGXv9otVqtqamp1p49e1qLFStmtVgs1p49e1p37drl8PpHq9VqPXr0qLVXr15WX19fa+HCha3lypWz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v/5ax48f1/bt2xUcHGybq1OnTqX6+vr6ljnfgQMHVFRUpGnTpsnF5eoCo8TERPXp00dXrlzRLbfcUvGJAwAAAMA14NYG4BdeXl7y8vJSWlqaCgsLf9dYAwcOVJMmTZScnOxwf926deXi4qL169erqKjouue588475eLiopSUFBUVFSk3N1dvv/22unfvXmYRobCwUHl5eXYNAAAAAIyikAD8ws3NTampqVqxYoV8fX3VqVMnPf/88zp48KBdv/Hjx9uKDiVt165ddn1KnpuwePFiHT9+vNRct912m15//XVNmjRJtWrVUteuXfXSSy/pxIkTpfoOHDiw1HynT5+WJDVq1Egff/yxnn/+eZnNZvn6+urs2bNau3Ztmec5c+ZMWSwWWwsKCrqetwsAAABANUUhAfiVvn376ocfftCmTZsUGxurjIwMtWnTRqmpqbY+zz33nDIzM+1a27ZtS40VExOju+++WxMnTnQ416hRo5SVlaWVK1eqQ4cOWrduncLCwrRt2za7fnPnzi01X2BgoCQpKytLI0aMUEJCgvbt26edO3fK3d1dDz30kKxWq8N5k5KSlJuba2tnzpy5zncLAAAAQHXEMxKA3/Dw8FB0dLSio6M1ceJEPfbYY5o8ebKGDh0qSapTp46aNGliaKxZs2apQ4cOeu655xzu9/b2Vu/evdW7d29NmzZNMTExmjZtmqKjo219/P39y5xv4cKFslgsmj17tm3bO++8o6CgIH3xxRdq3759qWPMZrPMZrOh/AAAAADwW6xIACrQokULXbp06bqOveuuu/Tggw9qwoQJFfY1mUxq1qzZNc31n//8x/aQxRKurq6SpOLi4msLCwAAAAAGsCIB+EVOTo7i4+M1bNgwhYeHy9vbW/v379fs2bPVp08fW7/8/HxlZWXZHVuzZk35+Pg4HHf69OkKCwuTm9v//3PLzMzU5MmT9cgjj6hFixZyd3fXzp07tXz5co0fP97u+IsXL5aaz9vbW56enurZs6fmzp2r5ORkDRw4UPn5+Xr++ecVHBysiIiI3/uWAAAAAEAprEgAfuHl5aXIyEjNnTtXnTt31h133KGJEydqxIgRWrBgga3fpEmTFBAQYNfGjRtX5rghISEaNmyY/vvf/9q21a9fXw0bNtTUqVMVGRmpNm3aaP78+Zo6dapeeOEFu+MfffTRUvP99a9/lSR1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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Afficher un bar chart des titres les plus fréquents\n",
+ "# Affichage d'un bar chart horizontal\n",
+ "plt.figure(figsize=(10, 6))\n",
+ "titles_more_than_once.sort_values(ascending=True).plot(kind='barh', color='skyblue',)\n",
+ "plt.xlabel('Nb')\n",
+ "plt.title('Fréquence des films/séries')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([2023, 2016, 2022, 1997, 2015, 2006, 2018, 2021, 1984, 1968, 2020,\n",
+ " 2019, 1971, 2017, 2001, 2012, 1987, 2005, 1975, 1982, 2013, 2014,\n",
+ " 2010, 1994, 2009, 1988, 2000, 2011, 1999, 1957, 2002])"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "# Extract unique values from the \"ANNEE\" column to understand its format\n",
+ "unique_years = df_truncated[annee].unique()\n",
+ "\n",
+ "# Display a few unique values for inspection\n",
+ "unique_years[:100]\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def visualize_year_distribution(years_data, chart_title):\n",
+ " \"\"\"\n",
+ " Visualise la distribution des années, y compris les intervalles, dans un ensemble de données d'années.\n",
+ " \n",
+ " Parameters:\n",
+ " - years_data (list or pd.Series): Un tableau ou une série Pandas contenant des années ou des intervalles d'années.\n",
+ " \n",
+ " Returns:\n",
+ " - Affiche un histogramme de la distribution des années.\n",
+ " \"\"\"\n",
+ " import pandas as pd\n",
+ " import matplotlib.pyplot as plt\n",
+ " import re # For regular expression operations\n",
+ " \n",
+ " \n",
+ " # Convertir toutes les valeurs en chaînes pour gérer les intervalles potentiels comme des entrées uniques\n",
+ " years_data = years_data.astype(str)\n",
+ " \n",
+ " # Séparer les intervalles en années individuelles et compter la fréquence de chaque année\n",
+ " all_years = []\n",
+ " # Utilise un set pour les valeurs non numériques\n",
+ " non_numeric_entries = set()\n",
+ " \n",
+ " for year in years_data:\n",
+ " if re.search(r'[a-z]', year): # If there are no digits in the string\n",
+ " non_numeric_entries.add(year)\n",
+ " elif \",\" in year:\n",
+ " years_list = year.split(\",\")\n",
+ " for y in years_list:\n",
+ " all_years.append(int(y.strip())) # Ajouter chaque année en la convertissant en entier\n",
+ " elif \"+/-\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, uncertainty = year.split(\"+/-\")\n",
+ " if (start_year != ''):\n",
+ " all_years.extend(range(int(start_year), int(start_year) + uncertainty + 1))\n",
+ " print(year)\n",
+ " else:\n",
+ " non_numeric_entries.add(year)\n",
+ " elif \"-\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, end_year = year.split(\"-\")\n",
+ " all_years.extend(range(int(start_year), int(end_year) + 1))\n",
+ " elif \"/\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, end_year = year.split(\"/\")\n",
+ " all_years.extend(range(int(start_year), int(end_year) + 1))\n",
+ " else:\n",
+ " all_years.append(int(year))\n",
+ " \n",
+ " # Print non-numeric entries if any\n",
+ " if non_numeric_entries:\n",
+ " print(\"Non-numeric entries found:\", non_numeric_entries)\n",
+ " \n",
+ " # Proceed with visualization only if there are numeric years\n",
+ " if all_years:\n",
+ " # Créer un DataFrame à partir de la liste des années pour faciliter la visualisation\n",
+ " df_years = pd.DataFrame(all_years, columns=[\"Year\"])\n",
+ " \n",
+ " # Visualiser la distribution des années avec un histogramme\n",
+ " plt.figure(figsize=(10, 6))\n",
+ " df_years[\"Year\"].hist(bins=len(df_years[\"Year\"].unique()), color=\"skyblue\", edgecolor=\"black\")\n",
+ " plt.title(chart_title)\n",
+ " plt.xlabel(\"Année\")\n",
+ " plt.ylabel(\"Fréquence\")\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.tight_layout()\n",
+ " plt.show()\n",
+ " else:\n",
+ " print(\"No numeric years found for visualization.\")\n",
+ " return all_years\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/s4/6jbnvfsj1v10f2txtlkndj5w0000gp/T/ipykernel_38954/2978788642.py:4: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " df_truncated[annee] = df_truncated[annee].astype(str)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAJOCAYAAABBfN/cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABg+0lEQVR4nO3df3zN9f//8fs59sM2G4bNll8L+ZkJify2IT8SEYpIioryo1Iqv/VW9IMI/SQV/ZRK+bFQy4/kdyUtJIvZFsNmm9l2Xt8/fHc+HRtm22vHzrldL5cul87rPM95Pc7r8Xod577XL4thGIYAAAAAAIAprM4uAAAAAAAAV0bwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAACmWbp0qebPn+/sMgAAcCqCNwC4uClTpshisRTLvNq3b6/27dvbH3///feyWCz67LPPimX+9913n2rUqFEs88qPnM///fffO7sUp/jqq6/00EMPqUmTJs4uxa5GjRq67777nF1Gkbp4uytOFotFU6ZMccq8AaAkIXgDQAmyZMkSWSwW+3+lS5dWaGiounTpotdee00pKSlFMp+4uDhNmTJFe/bsKZL3K0rXcm34P3///beGDRumDz/8ULfeequzy0EhfPvtt4RrACgkgjcAlEDTpk3T+++/r4ULF+rRRx+VJI0ZM0Y33nijfvnlF4exzz33nNLT06/q/ePi4jR16tSrDrfr1q3TunXrruo1V+tytb311luKiYkxdf7Inz179uiNN95Q7969nV0KCunbb7/V1KlT83wuPT1dzz33XDFXBAAlj4ezCwAAXL2uXbuqWbNm9scTJkzQhg0b1KNHD/Xs2VP79++Xj4+PJMnDw0MeHuZ+3aelpcnX11deXl6mzudKPD09nTp//J9evXo5u4RrXmpqqvz8/JxdRqGULl3a2SUAQInAHm8AcBEdO3bUxIkTdeTIEX3wwQf26Xmd4x0VFaXWrVurXLlyKlOmjOrUqaNnnnlG0oXzkm+++WZJ0tChQ+2HtS9ZskTShfNJGzZsqJ07d6pt27by9fW1v/ZS55pmZ2frmWeeUeXKleXn56eePXvqn3/+cRhzqXNv//ueV6otr3O8U1NT9fjjj6tq1ary9vZWnTp19NJLL8kwDIdxFotFo0aN0sqVK9WwYUN5e3urQYMGWrNmTd4L/CJHjx5Vr1695Ofnp6CgII0dO1YZGRl5jt22bZtuu+02lS1bVr6+vmrXrp02b97sMCYlJUVjxoxRjRo15O3traCgIHXq1Em7du26bB1HjhzRI488ojp16sjHx0cVKlTQXXfdpb///tthXM5pC5s3b9a4ceNUqVIl+fn5qXfv3vr3338dxtaoUUM9evTQpk2b1Lx5c5UuXVrXX3+9li5dmmv+p0+f1pgxY+zLu1atWnrxxRdls9kcxtlsNs2ZM0cNGjRQ6dKlFRwcrBEjRujUqVMO43bs2KEuXbqoYsWK8vHxUVhYmO6///7LLgNJMgxDM2bMUJUqVeTr66sOHTpo3759eY7Nb815yVk269atU+PGjVW6dGnVr19fK1ascBiXs7x/+OEHPfLIIwoKClKVKlXszy9YsEANGjSQt7e3QkNDNXLkSJ0+fTrX/N58803VrFlTPj4+at68uX788cdcY3LmdXHPL3XNgW3btqlbt24qX768/Pz81KhRI82dO1fShW3q9ddflySH01xy5HWO9+7du9W1a1cFBASoTJkyioiI0E8//ZRnjflZ/wDAFbDHGwBcyL333qtnnnlG69at04MPPpjnmH379qlHjx5q1KiRpk2bJm9vbx08eNAe/OrVq6dp06Zp0qRJGj58uNq0aSNJDufpnjx5Ul27dtWAAQM0aNAgBQcHX7au559/XhaLRU899ZQSExM1Z84cRUZGas+ePfY98/mRn9r+yzAM9ezZUxs3btSwYcPUuHFjrV27Vk8++aSOHTumV1991WH8pk2btGLFCj3yyCPy9/fXa6+9pj59+ig2NlYVKlS4ZF3p6emKiIhQbGysHnvsMYWGhur999/Xhg0bco3dsGGDunbtqqZNm2ry5MmyWq1avHixOnbsqB9//FHNmzeXJD300EP67LPPNGrUKNWvX18nT57Upk2btH///sterGz79u3asmWLBgwYoCpVqujvv//WwoUL1b59e/3+++/y9fV1GP/oo4+qfPnymjx5sv7++2/NmTNHo0aN0scff+ww7uDBg+rbt6+GDRumIUOG6N1339V9992npk2bqkGDBpIuHPnQrl07HTt2TCNGjFC1atW0ZcsWTZgwQcePH9ecOXPs7zdixAgtWbJEQ4cO1WOPPabDhw9r/vz52r17tzZv3ixPT08lJiaqc+fOqlSpkp5++mmVK1dOf//9d65Qm5dJkyZpxowZ6tatm7p166Zdu3apc+fOOn/+vMO4q6n5Ug4cOKD+/fvroYce0pAhQ7R48WLdddddWrNmjTp16uQw9pFHHlGlSpU0adIkpaamSrrwx7GpU6cqMjJSDz/8sGJiYrRw4UJt377dviwk6Z133tGIESN06623asyYMfrrr7/Us2dPBQYGqmrVqlesMy9RUVHq0aOHQkJCNHr0aFWuXFn79+/XqlWrNHr0aI0YMUJxcXGKiorS+++/f8X327dvn9q0aaOAgACNHz9enp6eeuONN9S+fXv98MMPuuWWWxzG53f9A4ASzwAAlBiLFy82JBnbt2+/5JiyZcsaN910k/3x5MmTjf9+3b/66quGJOPff/+95Hts377dkGQsXrw413Pt2rUzJBmLFi3K87l27drZH2/cuNGQZFx33XVGcnKyffonn3xiSDLmzp1rn1a9enVjyJAhV3zPy9U2ZMgQo3r16vbHK1euNCQZM2bMcBjXt29fw2KxGAcPHrRPk2R4eXk5TNu7d68hyZg3b16uef3XnDlzDEnGJ598Yp+Wmppq1KpVy5BkbNy40TAMw7DZbEbt2rWNLl26GDabzT42LS3NCAsLMzp16mSfVrZsWWPkyJGXnW9e0tLSck3bunWrIclYunSpfVrOuhQZGelQy9ixY41SpUoZp0+ftk+rXr26IcmIjo62T0tMTDS8vb2Nxx9/3D5t+vTphp+fn/Hnn386zP/pp582SpUqZcTGxhqGYRg//vijIcn48MMPHcatWbPGYfoXX3xxxfU9L4mJiYaXl5fRvXt3h8/2zDPPGJIc1rP81nwpOcvm888/t087c+aMERIS4rAd5izv1q1bG1lZWblq7dy5s5GdnW2fPn/+fEOS8e677xqGYRjnz583goKCjMaNGxsZGRn2cW+++aYhyWEbyZnX4cOHHWrN2R5z1sesrCwjLCzMqF69unHq1CmHsf9dbiNHjjQu9ZNRkjF58mT74169ehleXl7GoUOH7NPi4uIMf39/o23btrlqzM/6BwCugEPNAcDFlClT5rJXNy9Xrpwk6csvv8zXobR58fb21tChQ/M9fvDgwfL397c/7tu3r0JCQvTtt98WaP759e2336pUqVJ67LHHHKY//vjjMgxDq1evdpgeGRmpmjVr2h83atRIAQEB+uuvv644n5CQEPXt29c+zdfXV8OHD3cYt2fPHh04cED33HOPTp48qRMnTujEiRNKTU1VRESEoqOj7T0pV66ctm3bpri4uKv6zP89giAzM1MnT55UrVq1VK5cuTwPUx8+fLjDocNt2rRRdna2jhw54jCufv369iMMJKlSpUqqU6eOw7L59NNP1aZNG5UvX97+2U6cOKHIyEhlZ2crOjraPq5s2bLq1KmTw7imTZuqTJky2rhxo30ZSNKqVauUmZmZ72Xw3Xff6fz583r00UcdPtuYMWNyjc1vzZcTGhrqcBG5gIAADR48WLt371Z8fLzD2AcffFClSpXKVeuYMWNktVodxgUEBOibb76RdOGQ+8TERD300EMO11K47777VLZs2SsvlDzs3r1bhw8f1pgxY+zLOkdBbkGYnZ2tdevWqVevXrr++uvt00NCQnTPPfdo06ZNSk5OdnhNftc/ACjpONQcAFzM2bNnFRQUdMnn+/fvr7ffflsPPPCAnn76aUVEROjOO+9U3759HX74X8511113VRdSq127tsNji8WiWrVq5ToHtagdOXJEoaGhDqFfunDIes7z/1WtWrVc71G+fPlc5x3nNZ9atWrlCit16tRxeHzgwAFJ0pAhQy75XmfOnFH58uU1a9YsDRkyRFWrVlXTpk3VrVs3DR482CHQ5CU9PV0zZ87U4sWLdezYMYdz2c+cOZNr/MWfuXz58pKU6zPnZ9kcOHBAv/zyiypVqpRnbYmJifZxZ86cueR6mjOuXbt26tOnj6ZOnapXX31V7du3V69evXTPPffI29s7z9dK/9fXi9e7SpUq2T/f1dZ8OXn1/oYbbpB04bZqlStXtk8PCwvLs9aL1xUvLy9df/319ucv9Zk8PT2vuE5cyqFDhyRJDRs2LNDrL/bvv/8qLS0t12eRLmxzNptN//zzj/3UBCn/6x8AlHQEbwBwIUePHtWZM2dUq1atS47x8fFRdHS0Nm7cqG+++UZr1qzRxx9/rI4dO2rdunUOe+Mu9x5F7VJ72LKzs/NVU1G41HyMiy7EVlA5e7Nnz56txo0b5zmmTJkykqR+/fqpTZs2+uKLL7Ru3TrNnj1bL774olasWKGuXbtech6PPvqoFi9erDFjxqhly5YqW7asLBaLBgwYkOcRDvn9zPkZZ7PZ1KlTJ40fPz7PsTlh1GazKSgoSB9++GGe43JCsMVi0WeffaaffvpJX3/9tdauXav7779fL7/8sn766Sf7siqM/NZcVMzYdi52uW3pWmP2NgcA1wqCNwC4kJyLH3Xp0uWy46xWqyIiIhQREaFXXnlF//vf//Tss89q48aNioyMLNBhppeTs6c3h2EYOnjwoBo1amSfVr58+Tyv4nzkyBGHPXpXU1v16tX13XffKSUlxWGv9x9//GF/vihUr15dv/32mwzDcKjv4nuK5xzGHhAQoMjIyCu+b0hIiB555BE98sgjSkxMVJMmTfT8889fNnh/9tlnGjJkiF5++WX7tHPnzuW5bItazZo1dfbs2St+tpo1a+q7775Tq1at8hVEW7RooRYtWuj555/XsmXLNHDgQH300Ud64IEH8hyf09cDBw44rDv//vtvrj2p+a35cg4ePJir93/++ack5brK/qVqjYmJcaj1/PnzOnz4sL2u/36mjh072sdlZmbq8OHDCg8Pt0/L2Wt8cc8vPsIjZ3387bffLvv587vNVapUSb6+vrnWe+nCNme1Wgt8ETgAKOk4xxsAXMSGDRs0ffp0hYWFaeDAgZccl5SUlGtazt7XnNtf5dxbuKjC2tKlSx3OO//ss890/PhxhwBZs2ZN/fTTTw5XnV61alWu245dTW3dunVTdna25s+f7zD91VdflcViuWyAvRrdunVTXFycPvvsM/u0tLQ0vfnmmw7jmjZtqpo1a+qll17S2bNnc71Pzm2UsrOzcx0WHhQUpNDQ0EveoixHqVKlcu0tnDdvXrHs7ezXr5+2bt2qtWvX5nru9OnTysrKso/Lzs7W9OnTc43Lysqy9/bUqVO5PsvF62peIiMj5enpqXnz5jm8Pq8rlOe35suJi4vTF198YX+cnJyspUuXqnHjxg6HmV+qVi8vL7322msOtb7zzjs6c+aMunfvLklq1qyZKlWqpEWLFjlsI0uWLMm1LeQE6v+en56dnZ1rfWzSpInCwsI0Z86cXO/x31ryu82VKlVKnTt31pdffulwGklCQoKWLVum1q1bKyAg4LLvAQCuij3eAFACrV69Wn/88YeysrKUkJCgDRs2KCoqStWrV9dXX32l0qVLX/K106ZNU3R0tLp3767q1asrMTFRCxYsUJUqVdS6dWtJF364lytXTosWLZK/v7/8/Px0yy235Do/Nb8C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w9qzZ48CAwMVEhKivn37ateuXVq1apWys7Pt520HBgbKy8tL9erV02233aYHH3xQixYtUmZmpkaNGqUBAwZwRXMAAAAAgNM5PXjv2LFDHTp0sD/OOQR8yJAhmjJlir766itJUuPGjR1et3HjRrVv316S9OGHH2rUqFGKiIiQ1WpVnz599NprrxVL/QAAAAAAXI7Tg3f79u1lGMYln7/cczkCAwO1bNmyoiwLAAAAAIAiUeLu4w0AAAAAQElC8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAEzk9OAdHR2t22+/XaGhobJYLFq5cqXD84ZhaNKkSQoJCZGPj48iIyN14MABhzFJSUkaOHCgAgICVK5cOQ0bNkxnz54txk8BAAAAAEDenB68U1NTFR4ertdffz3P52fNmqXXXntNixYt0rZt2+Tn56cuXbro3Llz9jEDBw7Uvn37FBUVpVWrVik6OlrDhw8vro8AAAAAAMAleTi7gK5du6pr1655PmcYhubMmaPnnntOd9xxhyRp6dKlCg4O1sqVKzVgwADt379fa9as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XtHR0frpp5+UkZGhwMBAfffdd2rZsqV9vg888IDS0tK0bNkyzZgxQz/++KPWrl1rf/7o0aOqWrWqYmJidMMNNxTvQgEAwIk8nF0AAAAoOjExMfr555/1xRdfSJI8PDzUv39/vfPOO2rfvr19XKNGjez/HxISIklKTExUtWrVJEk1atSwh+6cMYmJiZKkgwcPKi0tTZ06dXKY9/nz53XTTTdJkvbu3auNGzeqTJkyuWo8dOgQwRsA4FYI3gAAuJB33nlHWVlZDhdTMwxD3t7emj9/vn2ap6en/f8tFoukC+dt5/V8zpic58+ePStJ+uabb3Tdddc5jMu5svnZs2d1++2368UXX8xVY07QBwDAXRC8AQBwEVlZWVq6dKlefvllde7c2eG5Xr16afny5apbt26h51O/fn15e3srNjZW7dq1y3NMkyZN9Pnnn6tGjRry8ODnBgDAvXFxNQAAXMSqVat06tQpDRs2TA0bNnT4r0+fPnrnnXeKZD7+/v564oknNHbsWL333ns6dOiQdu3apXnz5um9996TJI0cOVJJSUm6++67tX37dh06dEhr167V0KFDlZ2dXSR1AABQUhC8AQBwEe+8844iIyNVtmzZXM/16dNHO3bs0C+//FIk85o+fbomTpyomTNnql69errtttv0zTffKCwsTJIUGhqqzZs3Kzs7W507d9aNN96oMWPGqFy5crJa+fkBAHAvXNUcAAAAAAAT8SdnAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARP8PU65n++I5S6gAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Convertir toutes les valeurs en chaînes pour gérer les intervalles potentiels comme des entrées uniques\n",
+ "df_truncated[annee] = df_truncated[annee].astype(str)\n",
+ "all_prod_years = visualize_year_distribution(df_truncated[annee], 'Distribution des années de production')\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Non-numeric entries found: {'Années 50', 'Actuelle', 'Futur proche', 'notre époque', 'Contemporain ', 'Milieu du XXI siècle', 'Contemporain', 'Futur très proche', \"Aujourd'hui \", 'Futur', 'Tous les 33 ans ', 'Sur plusieurs siecles', '1969-1995 (mais uchronie...)', 'Années 2010/2020', 'Actuel ', '+/- 1930', 'années 2000'}\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/var/folders/s4/6jbnvfsj1v10f2txtlkndj5w0000gp/T/ipykernel_38954/2873658588.py:4: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " df_truncated[epoque] = df_truncated[epoque].astype(str)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9sAAAJOCAYAAACnVRSYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABvQUlEQVR4nO3dd3gUZdvG4WtTSQIJNYRACIhID11EqQIJRXhREBEQRJBXBZUiIkUIRRFUFLFgRUVQ7KIiTRAUsYAmSJEmEJTQhRAS0vb5/uDNfq6hhkl2kvzO48ghM/Ps7D17u8leO81hjDECAAAAAACW8fJ0AQAAAAAAFDaEbQAAAAAALEbYBgAAAADAYoRtAAAAAAAsRtgGAAAAAMBihG0AAAAAACxG2AYAAAAAwGKEbQAAAAAALEbYBgAAAADAYoRtAABwRebMmaP58+d7ugxcooyMDD3xxBP6/PPPPV0KABRqhG0AwBWJjY2Vw+HIl+dq06aN2rRp45r+5ptv5HA49OGHH+bL8995552qUqVKvjzXpcje/m+++cZjNcyZM0dTpkzRdddd57EaCqI333xTDodDe/fuzffnfuSRR/Taa6/lqmd79+6Vw+HQm2++aX1hAFDIELYBAC7ZASD7p1ixYgoPD1dMTIyee+45nTp1ypLnOXDggGJjYxUXF2fJ+qxk59rs5ueff9bEiRP1+eefq3r16p4uB5fgs88+0zvvvKOlS5eqXLlylqxzyZIlio2NtWRdAFCYELYBADlMmTJF8+fP10svvaT7779fkjR8+HDVq1dPmzZtchs7YcIEpaamXtb6Dxw4oMmTJ192oF2+fLmWL19+WY+5XBeq7dVXX9X27dvz9PkLki1btuijjz5ir3YBsnfvXn311Ve6+uqrc/X4yMhIpaam6o477nDNW7JkiSZPnmxViQBQaPh4ugAAgP106tRJTZo0cU2PHTtWq1at0k033aRu3bpp27ZtCggIkCT5+PjIxydv/5ykpKQoMDBQfn5+efo8F+Pr6+vR57ebO++809Ml4AIyMzPldDrd3jcPPvjgFa0z+4gXAMDFsWcbAHBJbrzxRj366KPat2+f3nnnHdf8c52zvWLFCrVo0UIlS5ZU8eLFVaNGDY0bN07S2fOMmzZtKkkaOHCg65D17HNA27Rpo7p162rjxo1q1aqVAgMDXY/99znb2bKysjRu3DiFhYUpKChI3bp10/79+93GVKlS5Zzh8J/rvFht5zpn+/Tp0xo1apQiIiLk7++vGjVq6KmnnpIxxm2cw+HQsGHD9Omnn6pu3bry9/dXnTp1tHTp0nO/4P/y559/qnv37goKClJoaKhGjBihtLS0c4798ccf1bFjR4WEhCgwMFCtW7fWunXr3MacOnVKw4cPV5UqVeTv76/Q0FB16NBBv/zyy0Vr+euvv3TXXXepfPnyru1444033MZkn0++aNGii/ZGkj744AM1btxYAQEBKlu2rPr166e//vorx7js169YsWKqW7euPvnkkxx9Od+57Oc73/j3339Xz549Vbp0aRUrVkxNmjTR4sWL3cZkZGRo8uTJql69uooVK6YyZcqoRYsWWrFixUVfry1btujGG29UQECAKlWqpGnTpsnpdOYY53A4znk49vn+3z3Xtj311FN69tlnVa1aNfn7+2vr1q2XvI2SdOLECY0YMcL1/0WlSpXUv39/HT161O15/vmeeOGFF1z1Z/8AANizDQC4DHfccYfGjRun5cuX6+677z7nmC1btuimm25SVFSUpkyZIn9/f+3atcsV9mrVqqUpU6Zo4sSJGjJkiFq2bClJuv76613rOHbsmDp16qTevXurX79+Kl++/AXreuyxx+RwODRmzBgdPnxYzz77rNq3b6+4uDjXHvhLcSm1/ZMxRt26ddPq1as1aNAgNWjQQMuWLdPo0aP1119/6ZlnnnEb/9133+njjz/WfffdpxIlSui5555Tjx49lJCQoDJlypy3rtTUVLVr104JCQl64IEHFB4ervnz52vVqlU5xq5atUqdOnVS48aNNWnSJHl5eWnevHm68cYb9e233+raa6+VJN1zzz368MMPNWzYMNWuXVvHjh3Td999p23btqlRo0bnreXQoUO67rrrXF8elCtXTl999ZUGDRqkpKQkDR8+3G38pfTmzTff1MCBA9W0aVNNnz5dhw4d0uzZs7Vu3Tr9+uuvKlmypKSzpxH06NFDtWvX1vTp03Xs2DENHDhQlSpVOm+9F7NlyxbdcMMNqlixoh555BEFBQXp/fffV/fu3fXRRx/p5ptvlnT2S6Xp06dr8ODBuvbaa5WUlKQNGzbol19+UYcOHc67/oMHD6pt27bKzMx0rf+VV165rP8vL8e8efN05swZDRkyRP7+/ipduvQlb2Ny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3jRp0kShoaGaO3eu23N/9dVX2rZtm7p06SLp7BcDDRo00FtvveVW+4oVK1y3t8oWGRkpb29vrV271m3+iy++mGOb27Rpo5dffvmcgfaf23Ps2DG3ZcWLF9fVV199wddLOtu7H374QT/99JPbehcsWJBjbLVq1XLU/Morr1zWnu1/u5xt7NGjh+Lj4/XJJ5/kGHehoy+sfj8DQGHBnm0AQA5fffWVfv/9d2VmZurQoUNatWqVVqxYocjISC1evNjtQlb/NmXKFK1du1ZdunRRZGSkDh8+rBdffFGVKlVSixYtJJ0NFSVLltTcuXNVokQJBQUFqVmzZjnON71UpUuXVosWLTRw4EAdOnRIzz77rK6++mq325MNHjxYH374oTp27KhevXpp9+7deuedd9wuWHa5tXXt2lVt27bV+PHjtXfvXtWvX1/Lly/XZ599puHDh+dYd27dfffdev7559W/f39t3LhRFSpU0Pz58xUYGOg2zsvLS6+99po6deqkOnXqaODAgapYsaL++usvrV69WsHBwfr888916tQpVapUST179lT9+vVVvHhxrVy5Uj///LOefvrpC9byxBNPaPXq1WrWrJnuvvtu1a5dW8ePH9cvv/yilStX5viy5WK98fX11YwZMzRw4EC1bt1at99+u+vWX1WqVNGIESNc65o+fbq6dOmiFi1a6K677tLx48c1Z84c1alTx+3LhZCQEN16662aM2eOHA6HqlWrpi+++CLH+eSS9MILL6hFixaqV6+e7r77bl111VU6dOiQ1q9frz///FPx8fGSpNq1a6tNmzZq3LixSpcurQ0bNrhunXYhDz/8sObPn6+OHTvqwQcfdN36KzIyMsc534MHD9Y999yjHj16qEOHDoqPj9eyZcvOecuty3Gp2zh69Gh9+OGHuvXWW3XXXXepcePGOn78uBYvXqy5c+eqfv3651x/48aNJUkPPPCAYmJi5O3trd69e19RzQBQKHjqMugAAPvJvvVX9o+fn58JCwszHTp0MLNnz3a7hVO2f9/66+uvvzb/+c9/THh4uPHz8zPh4eHm9ttvNzt27HB73GeffWZq165tfHx83G4l1Lp1a1OnTp1z1ne+W3+9++67ZuzYsSY0NNQEBASYLl26mH379uV4/NNPP20qVqxo/P39zQ033GA2bNiQY50Xqu3ft/4yxphTp06ZESNG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zuFwXHmVAAAAAAAUILkO2127dlWJEiX01ltvqVSpUpKkv//+WwMHDlTLli01atQoy4oEAAAAAKAgyfU5208//bSmT5/uCtqSVKpUKU2bNo2rkQMAAAAAirRch+2kpCQdOXIkx/wjR47o1KlTV1QUAAAAAAAFWa7D9s0336yBAwfq448/1p9//qk///xTH330kQYNGqRbbrnFyhoBAAAAAChQcn3O9ty5c/XQQw+pT58+ysjIOLsyHx8NGjRITz75pGUFAgAAAABQ0OQ6bAcGBurFF1/Uk08+qd27d0uSqlWrpqCgIMuKAwAAAACgIMr1YeTZEhMTlZiYqOrVqysoKEjGGCvqAgAAAACgwLrksO10Ot2mjx07pnbt2umaa65R586dlZiYKEkaNGgQt/0CAAAAABRplxy2Z82apSVLlrimR4wYIV9fXyUkJCgwMNA1/7bbbtPSpUutrRIAAAAAgALkks/Z7tChg3r06KHExEQNGjRIy5cv17Jly1SpUiW3cdWrV9e+ffssLxQAAAAAgILikvds169fXz/99JM+/fRTSdLp06fd9mhnO378uPz9/S0rEAAAAACAguayLpBWunRpff7555Kkli1b6u2333Ytczgccjqdmjlzptq2bWttlQAAAAAAFCC5vvXXzJkz1a5dO23YsEHp6el6+OGHtWXLFh0/flzr1q2zskYAAAAAAAqUXN/6q27dutqxY4datGih//znPzp9+rRuueUW/frrr6pWrZqVNQIAAAAAUKDkas92RkaGOnbsqLlz52r8+PFW1wQAAAAAQIGWqz3bvr6+2rRpk9W1AAAAAABQKOT6MPJ+/frp9ddft7IWAAAAAAAKhVxfIC0zM1NvvPGGVq5cqcaNGysoKMht+axZs664OAAAAAAACqLLDtt//PGHqlSpos2bN6tRo0aSpB07driNcTgc1lQHAAAAAEABdNlhu3r16kpMTNTq1aslSbfddpuee+45lS9f3vLiAAAAAAAoiC77nG1jjNv0V199pdOnT1tWEAAAAAAABV2uL5CW7d/hGwAAAACAou6yw7bD4chxTjbnaAMAAAAA8P8u+5xtY4zuvPNO+fv7S5LOnDmje+65J8fVyD/++GNrKgQAAAAAoIC57LA9YMAAt+l+/fpZVgwAAAAAAIXBZYftefPm5UUdAAAAAAAUGld8gTQAAAAAAOCOsA0AAAAAgMUI2wAAAAAAWIywDQAAAACAxQjbAAAAAABYjLANAAAAAIDFCNsAAAAAAFiMsA0AAAAAgMUI2wAAAAAAWIywDQAAAACAxQjbAAAAAABYjLANAAAAAIDFCNsAAAAAAFjM9mG7SpUqcjgcOX6GDh0qSWrTpk2OZffcc4/bOhISEtSlSxcFBgYqNDRUo0ePVmZmpic2BwAAAABQBPh4uoCL+fnnn5WVleWa3rx5szp06KBbb73VNe/uu+/WlClTXNOBgYGuf2dlZalLly4KCwvT999/r8TERPXv31++vr56/PHH82cjAAAAAABFiu3Ddrly5dymn3jiCVWrVk2tW7d2zQsMDFRYWNg5H798+XJt3bpVK1euVPny5dWgQQNNnTpVY8aMUWxsrPz8/PK0fgAAAABA0WP7w8j/KT09Xe+8847uuusuORwO1/wFCxaobNmyqlu3rsaOHauUlBTXsvXr16tevXoqX768a15MTIySkpK0ZcuWfK0fAAAAAFA02H7P9j99+umnOnHihO68807XvD59+igyMlLh4eHatGmTxowZo+3bt+vjjz+WJB08eNAtaEtyTR88ePC8z5WWlqa0tDTXdFJSkiQpIyNDGRkZVm1SvnE6nQoICJC3jLycmfKWUUBAgJxOZ663J/txBfH1KMzoi/3QE3uiL/ZEX+yHntgTfbEfemJPVvflctbjMMYYS541H8TExMjPz0+ff/75ecesWrVK7dq1065du1StWjUNGTJE+/bt07Jly1xjUlJSFBQUpCVLlqhTp07nXE9sbKwmT56cY/7ChQvdzgkHAAAAABQNKSkp6tOnj06ePKng4OALji0we7b37dunlStXuvZYn0+zZs0kyRW2w8LC9NNPP7mNOXTokCSd9zxvSRo7dqxGjhzpmk5KSlJERISio6Mv+qLaUXx8vFq1aqUhry1WeI26OrB9s14Z3E1r165V/fr1c7XOjIwMrVixQh06dJCvr6/FFSO36Iv90BN7oi/2RF/sh57YE32xH3piT1b3JfuI50tRYML2vHnzFBoaqi5dulxwXFxcnCSpQoUKkqTmzZvrscce0+HDhxUaGipJWrFihYKDg1W7du3zrsff31/+/v455vv6+hbIN4+Xl5dSU1OVJYecXj7KkkOpqany8vK64u0pqK9JYUdf7Iee2BN9sSf6Yj/0xJ7oi/3Q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Z5faFz4IeY6Pj492796trVu3uuZVrlxZgwcP1n333ad58+Zp9erVHqyw6KEn9kRf7Iee2Ev2kWoNGjSQw+HQpk2bXEcV+Pv7q3///mrevLm+/PJLnTx50pOlFin51Rc+YcNSrVq1UmpqqubNm6dTp0655kdERKhr166Ki4vjF0k+yP4F0rlzZ/n6+mrBggWuZQ6HQ40bN9bkyZO1Y8cO/fDDD54qs8ihLwVH+fLldf3112vx4sU6ePCg2/y+ffvK399fGzdu9GCFRQ89sSf6Yj/0xB6yg1v2Do3OnTvrwIEDmjx5sk6cOOEaExQUpEmTJik+Pp4vQfJBfveFsI1c27t3r1599VW9/vrrWrZsmSSpV69eatGihV5++WW98847On78uGt806ZNFRgY6BbCYa3MzExJ//+LpGLFiqpdu7beffddffvtt65xvr6+6tChg/7880/Fx8d7pNaihL7YX1JSkg4dOuT6nRUWFqZevXpp/vz5evvtt92O1qlRo4auueYarV69mnPr8xA9sSf6Yj/0xH62b9+uSZMm6c4779Rrr72mzZs3Kzw8XJ9++qmWL1+u+++/X4mJia4j2DIzMxUVFaXSpUt7uPLCzRN94Zxt5Mpvv/2mtm3bqnr16jpy5IgOHTqknj176rnnntOcOXM0ePBgvfjii9qxY4eGDRumkJAQvfXWW/Ly8lL58uU9XX6htG3bNj311FM6ceKEypYtq+HDh6tWrVqaNm2aevfurSeffFKpqamKjo6WJJUtW1ZRUVEKCgrycOWFG32xv99++0333HOPDh48qDJlyqh27dp64403NGTIEB07dkzjx49Xenq6br/9dlWrVk3S2S9OqlWrxqH+eYSe2BN9sR96Yj9bt27V9ddfr/bt2ysxMVG///67Jk+erNdff13R0dH6/PPP1a1bNx0+fFi33367oqKi9MEHH+jAgQOuHsF6nuoL99nGZUtOTlZ0dLSaNGmi5557TgcPHlRcXJz69u2rhg0bauHChQoNDdWUKVO0cuVKfffdd2rUqJH++usvLVmyRA0bNvT0JhQ627dvV9OmTXXLLbcoPT1dhw4d0rp16zRnzhzdfffdio+P19133y1/f3/dcMMNuvHGG7VkyRK9/fbb2rBhg6666ipPb0KhRF/sb9++fWratKn69++v66+/Xrt379arr74qX19fff7557rqqqv01FNP6YUXXlCVKlUUEREhSfrss8+0bt061a1b18NbUPjQE3uiL/ZDT+wnKytLd955p4wxeueddyRJcXFxev755/Xmm2/q008/1U033aQdO3bowQcf1B9//KHMzEwFBARo/vz5fEbOIx7tiwEuU2pqqmnUqJF577333OZv377dlC1b1tx0002ueYcOHTJfffWV+e6778z+/fvzu9QiY+jQoaZbt26u6fT0dDN+/HjjcDjMrFmzjDHG/P7772b8+PHmmmuuMXXr1jVNmjQxv/76q4cqLhroi/199NFHpkmTJubkyZOuebt37zbNmjUz1atXN0eOHDHGGPPll1+axx57zERHR5t7773X/Pbbb54qudCjJ/ZEX+yHnthPenq6ad26tXnkkUfc5h8+fNjce++9plixYmbt2rXGGGOSk5PNX3/9ZX7//Xdz7NgxT5RbZHiyL4RtXJbMzEyTnJxsKlasaCZPnuyan56ebowxJj4+3gQFBZnY2FhPlVgk9e3b19x5553GGGOysrJc86dNm2Z8fHzM4sWLjTHGZGRkmPT0dHP06FFz6tQpj9RalNAX+3v++edN2bJlXdPZfTpw4ICpX7++ue6669zGO51Ot17CevTEnuiL/dATexo6dKhp3ry5OX78uNv8hIQE06NHD9OpUyfz999/e6a4IsxTfeECabgk2Vfn8/b2VlBQkEaNGqVXX31VX3zxhaSzF3bKyMhQVFSUxo4dq6+++krHjx/n4hv5JDIyUkuXLtXJkyfl5eWljIwMSdL48eM1aNAg3XfffTp69Kh8fHzk6+urMmXKqHjx4h6uuvCrUqUKfbEp878zqLp27Sp/f3898cQTks5endTpdKpChQp68cUXdfToUb333nuuxzgcDm6VlwfMP85o69q1q4oVK0ZPbIL3ir3wXrG/i92ZJz4+nosF54MjR47oyJEjrum2bdvqzJkz+d4X3nG4qLi4OHXt2lWbNm1yzevcubNuuOEGzZw5U8uXL5d0NnBLZy/wlJSUpGLFivFLPZ8MHDhQkZGRuu+++5SUlOT68kOSBg8eLEnauXOnJ0ssEhISEvT777+7pgcMGKCqVavSFxtJS0uT9P9XiC9ZsqRuvfVWLVmyRO+++66k/78dSN26deXl5aU//vhDEvc9zyvbt2/X22+/7epJ6dKl1aNHDy1dupSeeBDvFfvhvWI/3JnHnn755RfVq1dP27dvd83r0aOHmjdvrldffTVf+0ISwgXFx8fr2muvVfPmzRUVFeWaX6NGDQ0aNEilSpXShAkTXN+cZmRk6I8//lBoaKiysrI8VXahtmvXLj3xxBMaO3as3n33XaWmpurqq6/W4MGDtWPHDo0aNUonTpxwffkRFhYmf39/1x9n5I1ff/1VTZo00ebNm13zqlWrpr59+2r37t30xQa2bNmi22+/XR06dFDXrl21Zs0aBQcHa8SIEQoODtbLL7+sefPmucYHBwfrqquukr+/vyT3PUqwRnx8vGrVqqWTJ0/Kx+fsDVKKFy+uoUOHKigoSK+++io98QDeK/bDe8V+fvvtNzVp0kRvvPGGpk+frp49e2rgwIE6deqU5syZo5YtW+rFF1/U1KlTtXv3bh09epQ78+SD+Ph4tW7dWr1791aLFi3clr3wwgtq2rSpXnrppfzri+UHpqPQ2Lx5swkICDATJ040xpw91+fYsWNm165drjHr168399xzj/Hx8XGdH1SqVCku8JRHNm/ebEqWLGlat25tWrVqZXx8fMzNN9/suqjDs88+a6699lrTqlUrs2XLFvPbb7+ZCRMmmMqVK5u//vrLw9UXXnFxcSYoKMiMGDEix7L09HQzY8YM06xZM/riQTt27DDBwcFmyJAhZvTo0aZnz57G4XCYCRMmmNOnT5s9e/aYXr16mXr16pl+/fqZ+fPnm3vuuccEBwebHTt2eLr8Qin7Gh+jR492m5+ZmWmMMea3334zt956q4mKiqIn+Yj3iv3wXrGfU6dOmebNm5v777/fGGNMYmKi+eqrr0zp0qVNu3btzKFDh4wxxkyePNm0bNnSOBwO07hxYxMWFmZ++eUXT5ZeqG3atMmEhIS43itZWVnmt99+M+vXrzdxcXGucRMnTsy3vhC2cU5Hjx41V199tWnYsKFr3sCBA03jxo1NhQoVTIsWLVz/0546dcqsX7/eTJ061cydO9fs3LnTU2UXaikpKeamm24yQ4cOdc3buHGjadKkiWnbtq1ZtmyZMcaYzz//3LRv3974+fmZmjVrmquuusps3LjRU2UXetu2bTOBgYFm3LhxxpizFzv75ptvzCeffGJWr15tjDn7geizzz6jLx40YcIEEx0d7TbvueeeM6VLlzYPPfSQSU9PNwcOHDCvvfaaadSokWnatKlp27at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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "epoque = \"EPOQUE DU RECIT\"\n",
+ "\n",
+ "# Convertir toutes les valeurs en chaînes pour gérer les intervalles potentiels comme des entrées uniques\n",
+ "df_truncated[epoque] = df_truncated[epoque].astype(str)\n",
+ "all_years = visualize_year_distribution(df_truncated[epoque], 'Distribution des époques du récit')\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAJOCAYAAABBfN/cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABvBUlEQVR4nO3de3yP9f/H8efns81sbJgZ5hxyCBNFvrScZuSrlL5IIjmUqFAppSK+kc5fiW/fpMM36Sgd5ZwSFYVoLSRLYzNiR7Pt8/794bfPdx8bttm1z7Xtcb/d3Ow67Pq8rs9r17bnrut6Xw5jjBEAAAAAALCE09sFAAAAAABQnhG8AQAAAACwEMEbAAAAAAALEbwBAAAAALAQwRsAAAAAAAsRvAEAAAAAsBDBGwAAAAAACxG8AQAAAACwEMEbAAAU2fz58/XGG294uwwUUlZWlubOnauPP/7Y26UAQIVE8AYAFNmMGTPkcDhK5bW6d++u7t27u6c3bNggh8Oh9957r1Re/5ZbblHjxo1L5bUKI3f/N2zY4LUa5s+fr8cee0xXXHGF12ooi1599VU5HA79/vvvpf7aDzzwgF5++eVi9ez333+Xw+HQq6++WvKFAUAFQfAGgAouNwzk/qtcubLCw8MVHR2tf/3rX0pJSSmR14mPj9eMGTO0ffv2EtleSbJzbXbz/fff65FHHtHHH3+s5s2be7scFMKKFSv03//+VytXrlStWrVKZJufffaZZsyYUSLbAoCKgOANAJAkPfbYY3rjjTe0cOFC3XnnnZKkSZMmqW3bttq5c6fHutOnT1dGRkaRth8fH6+ZM2cWOdyuWrVKq1atKtLnFNW5avvPf/6j2NhYS1+/LNm9e7fef/99znaXIb///rs+//xzNWvWrFif36hRI2VkZOjmm292z/vss880c+bMkioRAMo9X28XAACwh379+umyyy5zT0+bNk3r1q3T3//+d11zzTWKiYlRQECAJMnX11e+vtb+CElPT1dgYKAqVapk6eucj5+fn1df325uueUWb5eAc8jOzpbL5fI4bu6+++4L2mbulTAAgOLjjDcA4Kx69uyphx9+WAcOHNB///tf9/yC7vFevXq1unXrpurVq6tq1apq0aKFHnzwQUmn70u+/PLLJUmjRo1yX9aee89o9+7d1aZNG23btk2RkZEKDAx0f+6Z93jnysnJ0YMPPqg6deqoSpUquuaaa/THH394rNO4ceMCg2LebZ6vtoLu8U5LS9M999yjBg0ayN/fXy1atNBTTz0lY4zHeg6HQxMnTtSHH36oNm3ayN/fX5dccolWrlxZ8Bt+hoMHD2rgwIGqUqWKwsLCNHnyZGVmZha47rfffqu+ffuqWrVqCgwM1FVXXaVNmzZ5rJOSkqJJkyapcePG8vf3V1hYmKKiovTDDz+ct5Y///xTt956q2rXru3ej1deecVjndz7z99+++3z9kaS3n33XXXs2FEBAQEKDQ3V8OHD9eeff+ZbL/f9q1y5stq0aaPly5fn68vZ7n0/2/3Jv/zyi2644QaFhISocuXKuuyyy/TRRx95rJOVlaWZM2eqefPmqly5smrWrKlu3bpp9erV532/du/erZ49eyogIED169fX7Nmz5XK58q3ncDgKvGT7bF+7Be3bU089peeee05NmzaVv7+/fv7550LvoyQdP35ckydPdn9d1K9fXyNGjFBSUpLH6+Q9JhYsWOCuP/cfAODsOOMNADinm2++WQ8++KBWrVqlsWPHFrjO7t279fe//13t2rXTY489Jn9/f+3du9cd/Fq1aqXHHntMjzzyiMaNG6crr7xSkvS3v/3NvY2jR4+qX79+Gjp0qIYPH67atWufs65//vOfcjgcuv/++5WYmKjnnntOvXv31vbt291n5gujMLXlZYzRNddco/Xr12v06NFq3769vvjiC9133336888/9eyzz3qs//XXX+uDDz7QHXfcoaCgIP3rX//SoEGDFBcXp5o1a561royMDPXq1UtxcXG66667FB4erjfeeEPr1q3Lt+66devUr18/dezYUY8++qicTqeWLFminj176quvvlKnTp0kSbfffrvee+89TZw4Ua1bt9bRo0f19ddfKyYmRh06dDhrLQkJCbriiivcf0ioVauWPv/8c40ePVrJycmaNGmSx/qF6c2rr76qUaNG6fLLL9ecOXOUkJCg559/Xps2bdKPP/6o6tWrSzp9q8GgQYPUunVrzZkzR0ePHtWoUaNUv379s9Z7Prt371bXrl1Vr149PfDAA6pSpYreeecdDRw4UO+//76uu+46Saf/wDRnzhyNGTNGnTp1UnJysrZu3aoffvhBUVFRZ93+4cOH1aNHD2VnZ7u3/9JLLxXp67IolixZopMnT2rcuHHy9/dXSEhIofcxNTVVV155pWJiYnTrrbeqQ4cOSkpK0kcffaSDBw8qNDQ03+vddtttio+P1+rVqxnZHgAKywAAKrQlS5YYSeb7778/6zrVqlUzl156qXv60UcfNXl/hDz77LNGkjly5MhZt/H9998bSWbJkiX5ll111VVGklm0aFGBy6666ir39Pr1640kU69ePZOcnOye/8477xhJ5vnnn3fPa9SokRk5cuR5t3mu2kaOHGkaNWrknv7www+NJDN79myP9W644QbjcDjM3r173fMkmUqVKnnM27Fjh5Fk5s+fn++18nruueeMJPPOO++456WlpZlmzZoZSWb9+vXGGGNcLpdp3ry5iY6ONi6Xy71uenq6adKkiYmKinLPq1atmpkwYcI5X7cgo0ePNnXr1jVJSUke84cOHWqqVatm0tPTjTGF782pU6dMWFiYadOmjcnIyHCv98knnxhJ5pFHHnHPa9++valbt645fvy4e96qVauMJI++5L527vuSa//+/fl626tXL9O2bVtz8uRJ9zyXy2X+9re/mebNm7vnRUREmP79+xfhnTpt0qRJRpL59ttv3fMSExNNtWrVjCSzf/9+93xJ5tFHH823jbN97Ra0b8HBwSYxMdFjWWH38ZFHHjGSzAcffJBv+7lfTwW9hxMmTDD8GgkAhcel5gCA86pateo5RzfPPTu5YsWKAi+nLQx/f3+NGjWq0OuPGDFCQUFB7ukbbrhBdevW1WeffVas1y+szz77TD4+Prrrrrs85t9zzz0yxujzzz/3mN+7d281bdrUPd2uXTsFBwfrt99+O+/r1K1bVzfccIN7XmBgoMaNG+ex3vbt27Vnzx4NGzZMR48eVVJSkpKSkpSWlqZevXpp48aN7p5Ur15d3377reLj4wu9v8YYvf/++xowYICMMe7tJyUlKTo6WidOnMh3qfr5erN161YlJibqjjvu8Lh3uH///mrZsqU+/fRTSdKhQ4e0fft2jRw5UtWqVXOvFxUVpdatWxd6H/I6duyY1q1bp8GDByslJcW9L0ePHlV0dLT27Nnjvty9evXq2r17t/bs2VOk1/jss890xRVXuK80kKRatWrppptuKlbN5zNo0CCP0cqLso/vv/++IiIi3GfA8+LycQAoOQRvAMB5paamegSpMw0ZMkRdu3bVmDFjVLt2bQ0dOlTvvPNOkUJ4vXr1ijSQ2pmPsnI4HGrWrJnlz0g+cOCAwsPD870frVq1ci/Pq2HDhvm2UaNGDf3111/nfZ1mzZrlCz8tWrTwmM4NhSNHjlStWrU8/r388svKzMzUiRMnJEnz5s3Trl271KBBA3Xq1EkzZsw47x8Ajhw5ouPHj+ull17Kt/3cP5QkJiZ6fM75epP7Hp25L5LUsmVL9/Lc/wt6bFlBn1sYe/fulTFGDz/8cL79efTRRz3257HHHtPx48d18cUXq23btrrvvvvyjfBfkAMHDpRozefTpEkTj+mi7OO+ffvUpk0bS+oCAPwP93gDAM7p4MGDOnHixDkfRRQQEKCNGzdq/fr1+vTTT7Vy5Uq9/fbb6tmzp1atWiUfH5/zvo4V97+e7YxdTk5OoWoqCWd7HXPGQGzFlfvHjSeffFLt27cvcJ2qVatKkgYPHqwrr7xSy5cv16pVq/Tkk0/qiSee0AcffKB+/fqdc/vDhw/XyJEjC1ynXbt2F7gXF+5cvc4rd3/uvfdeRUdHF/g5uV/rkZGR2rdvn1asWKFVq1bp5Zdf1rPPPqtFixZpzJgxJVj9+es+lzOPnaLsIwCgdBC8AQDnlDt40tl+gc/ldDrVq1cv9erVS88884wef/xxPfTQQ1q/fr169+5d4petnnn5rzFGe/fu9QiBNWrU0PHjx/N97oEDB3TRRRe5p4tSW6NGjbRmzRqlpKR4nPX+5Zdf3MtLQqNGjbRr1y4ZYzzqO/OZ4rmXsQcHB6t3797n3W7dunV1xx136I477lBiYqI6dOigf/7zn2cN3rVq1VJQUJBycnIKtX3p/L3JfY9iY2PVs2dPj3VjY2Pdy3P/L+hS7zPfhxo1akhSvn6feQVCbt/9/PwKtT8hISEaNWqURo0apdTUVEVGRmrGjBnnDN6NGjUqVM25dZ9Z86lTp3To0KHz1nY2RdnHpk2bateuXUV+DS5DB4Ci4VJzAMBZrVu3TrNmzVKTJk3OeX/qsWPH8s3LPfua+/irKlWqSMofjIrr9ddf97jv/L333tOhQ4c8AmTTpk21ZcsWnTp1yj3vk08+yfdoq6LUdvXVVysnJ0cvvPCCx/xnn31WDofjrAG2qK6++mrFx8frvffec89LT0/XSy+95LFex44d1bRpUz311FNKTU3Nt50jR45IOn0GNfeS81xhYWEKDw8/6yPKpNNn7AcNGqT333+/wICWu/28ztebyy67TGFhYVq0aJHHa3/++eeKiYlR//79JZ3+I0H79u312muvedS+evVq9yOzcjVq1Eg+Pj7auHGjx/wXX3wx3z53795d//73vwsMt3n35+jRox7LqlatqmbNmp3z/ZJO927Lli367rvvPLb75ptv5lu3adOm+Wp+6aWXinTG+0xF2cdBgwZpx44dWr58eb71znVVRkkfzwBQ3nHGGwAg6XTo+eWXX5Sdna2EhAStW7dOq1evVqNGjfTRRx95DIJ1pscee0wbN25U//791ahRIyUmJurFF19U/fr11a1bN0mnA0b16tW1aNEiBQUFqUqVKurcuXO++1MLKyQkRN26ddOoUaOUkJCg5557Ts2aNfN45NmYMWP03nvvqW/fvho8eLD27dun//73vx6DnRW1tgEDBqhHjx566KGH9PvvvysiIkKrVq3SihUrNGnSpHzbLq6xY8fqhRde0IgRI7Rt2zbVrVtXb7zxhgIDAz3Wczqdevnll9WvXz9dcsklGjVqlOrVq6c///xT69evV3BwsD7++GOlpKSofv36uuGGGxQREaGqVatqzZo1+v777/X000+fs5a5c+dq/fr16ty5s8aOHavWrVvr2LFj+uGHH7RmzZp8f3g5X2/8/Pz0xBNPaNSoUbrqqqt04403uh8n1rhxY02ePNm9rTlz5qh///7q1q2bbr31Vh07dkzz58/XJZdc4vGHhmrVqukf//iH5s+fL4fDoaZNm+qTTz7Jd/+5JC1YsEDdunVT27ZtNXbsWF100UVKSEjQ5s2bdfDgQe3YsUOS1Lp1a3Xv3l0dO3ZUSEiItm7d6n4c27lMnTpVb7zxhvr27au7777b/TixRo0a5btHfMyYMbr99ts1aNAgRUVFaceOHfriiy8KfIxXURR2H++77z699957+sc//qFbb71VHTt21LFjx/TRRx9p0aJFioiIKHD7HTt2lCTdddddio6Olo+Pj4YOHXpBNQNAueat4dQBAPaQ+zix3H+VKlUyderUMVFRUeb555/3eCxUrjMfJ7Z27Vpz7bXXmvDwcFOpUiUTHh5ubrzxRvPrr796fN6KFStM69atja+vr8fjia666ipzySWXFFjf2R4n9tZbb5lp06aZsLAwExAQYPr3728OHDiQ7/OffvppU69ePePv72+6du1qtm7dmm+b56rtzMeJGWNMSkqK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9NNPKzo6Wq1bt9bJkyc1bNgw7dmzR6GhoXrrrbdKskYAAAAAAMqsYgfv+vXra8eOHVq2bJl27typ1NRUjR49WjfddJPHYGsAAAAAAFRkxQ7ekuTr66vhw4eXVC0AAAAAAJQ7xQ7er7/++jmXjxgxoribBgAAAACg3Ch28L777rs9prOyspSenq5KlSopMDCQ4A0AAAAAgC5gVPO//vrL419qaqpiY2PVrVs3BlcDAAAAAOD/FTt4F6R58+aaO3duvrPhAAAAAABUVCUavKXTA67Fx8eX9GYBAAAAACiTin2P90cffeQxbYzRoUOH9MILL6hr164XXBgAAAAAAOVBsYP3wIEDPaYdDodq1aqlnj176umnn77QugAAAAAAKBeKHbxdLldJ1gEAAAAAQLlU4vd4AwAAAACA/yn2Ge8pU6YUet1nnnmmuC8DAAAAAECZVuzg/eOPP+rHH39UVlaWWrRoIUn69ddf5ePjow4dOrjXczgcF14lAAAAAABlVLGD94ABAxQUFKTXXntNNWrUkCT99ddfGjVqlK688krdc889JVYkAAAAAABlVbHv8X766ac1Z84cd+iWpBo1amj27NlFGtV848aNGjBggMLDw+VwOPThhx96LDfG6JFHHlHdunUVEBCg3r17a8+ePR7rHDt2TDfddJOCg4NVvXp1jR49WqmpqcXdNQAAAAAASkyxg3dycrKOHDmSb/6RI0eUkpJS6O2kpaUpIiJCCxYsKHD5vHnz9K9//UuLFi3St99+qypVqig6OlonT550r3PTTTdp9+7dWr16tT755BNt3LhR48aNK/pOAQAAAABQwop9qfl1112nUaNG6emnn1anTp0kSd9++63uu+8+XX/99YXeTr9+/dSvX78Clxlj9Nxzz2n69Om69tprJUmvv/66ateurQ8//FBDhw5VTEyMVq5cqe+//16XXXaZJGn+/Pm6+uqr9dRTTyk8PLy4uwgAAAAAwAUrdvBetGiR7r33Xg0bNkxZWVmnN+brq9GjR+vJJ58skeL279+vw4cPq3fv3u551apVU+fOnbV582YNHTpUmzdvVvXq1d2hW5J69+4tp9Opb7/9Vtddd12+7WZmZiozM9M9nZycLEnKyspy74sd5dZm5xorMvpjX/TG3uiPvdm9Py6XSwEBAfKRkdOVLR8ZBQQEyOVySZLHMl+no0jTebdl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wH35RO43b2OMWbhwoalUqZLZtWuXx+fwfMHS8d///td07NjR1K1b1/Tv398cPnzY/c1h1qxZpnLlyvkuiaU3pWfZsmUcOza2dOlSjh+be/rpp039+vXNxx9/7J6X26PZs2ebzp07m6NHj/JMdS/YvXu3CQwMNO3btzeHDx92zz958qSZNGmS6dq1qzl27BjHTCnLfb/ff/994+/vb15//XX3soyMDGPM6UvMGzdubH7//Xf6U8pyb2Xat2+fueSSS8zf/vY3ExcX57HOM888Yxo3bmzi4uLoj5c888wz5fJnD6Oa21B6err++usvZWRkSJKGDh2qPn366Nprr1ViYqIqVaqkzMxMSdLtt9+uhg0bat26dR7bYLAha+T2JndEy5tuuklTpkzR5ZdfrunTp6t27druQZ/uvPNOBQUFaePGjR7boDelZ8iQIYqKiuLYsakbb7xRkydP5vixiUOHDum7777TF198oZycHEnS9ddfry5dumjevHlatWqVJLl7FBoaquTkZFWuXJlnqlvszN7k5OSodevW2r17t+666y73M+8lyd/fX4GBgTp16pSCgoI4ZkpB7vHicrnc73f37t112223acaMGXrrrbckSZUrV5YkVa1aVZUqVVLVqlXpTynI2x8fHx/l5OTooosu0qpVq3TXXXepTp06Hus7HA4FBwcrNDSU/pSCo0eP6pdfftGWLVvc86KiotS1a9dy97OnbFVbAezevVtDhgxR165dNWzYMH388ceSpH/+859q2LChrrjiCh08eNA9+m96erqCgoJUo0YNb5ZdIeTtzfDhw/XRRx9JkoYNG6a5c+eqffv2kv73rOikpCTVrVtXzZo181bJFUpsbKymTZumm2++WU899ZR++OEHSdIzzzyj8PBwjh0vO7M/27Ztk3T6j1ezZ8/m+PGynTt3qkuXLrr55ps1ZMgQXXLJJVq2bJnq1aunqVOnqlq1apo+fbqWLVsmScrKytJvv/2msLAw9y+1sMaZvWnTpo3eeecdJSYmqnHjxhoxYoT7F9JcSUlJateunVwul5eqrjh27dql3r17648//pDT6XS/5yEhIRo3bpx69+6tKVOmaP78+Tp58qTS0tK0detWVa1atcyFhrKooP74+PjI5XIpPDxcQ4YMyXf8/Pbbb2rZsqWXKq5YfvrpJ1199dUaOHCgrr32WkVHR0uS2rRpo7Fjx6pGjRp6+OGHy8/PHm+fcsf/7N692z0C86JFi0zXrl3NjTfeaIw5fenS999/byIjI0316tXNv//9b/PWW2+ZBx54wNSsWdPs27fPy9WXbwX1ZtiwYee8BOmhhx4y7dq1M/Hx8aVYacW0e/duU716dfOPf/zD3H777aZBgwamffv25qWXXjLGGPPTTz+ZK6+8kmPHSwrqT4cOHcwLL7xw1s/h+Ck9iYmJpmXLlubBBx80+/btM3/++acZMmSIufjii83MmTPNyZMnzfbt283tt99ufH19TUREhLniiitMjRo1zI8//ujt8su1s/WmVatW5tFHH3UP0JXr0KFD5qGHHjI1a9Y0u3fv9lLVFcf+/ftNs2bNjMPhMM2bN3cP7pQ7mJoxxuzZs8fMnj3b+Pv7m2bNmpmIiAhTq1Yt24++XB6crT9nuzz5t99+Mw899JCpXr26+emnn0qz1Arpl19+MaGhoeaBBx4wmzdvNl988YW56KKLzP333+9eZ9OmTWb8+PHl5mcPwdsm0tPTzcCBA83dd9/tnrdixQpz3XXXmUOHDpmTJ08aY07fu3XXXXeZVq1amRYtWpjOnTvzzdti5+pNQkKCSUlJcc93uVxm5cqVZsKECWX6G0NZkpKSYqKjo83UqVPd8w4ePGhq1qxpatWq5R5gKCUlxUyaNIljp5Sdqz+1a9c2s2fP9lif46f07d692zRu3Nhs3brVY/79999vLrnkEvPUU08Zl8tlUlNTzebNm82sWbPMokWLzJ49e7xUccVxrt60bdvWzJs3z6SlpRljTv+COmLECBMeHs6xUwoyMjLM9OnTzXXXXWfWrl1rIiMjTaNGjQoM38YYExMTYxYvXmyWLVtm9u/f74WKK5bz9efM8L19+3YzbNgw07BhQ46fUpCSkmIGDx7sfuSeMad7cuedd5prrrkm37rl5WePr7fPuOM0f39/HT16VJdeeql73ldffaUff/xRl112mZo3b64uXbro8ccf1/PPP68///xTVapUkSRVr17dS1VXDOfqTYcOHdSiRQt16tRJc+bMUVZWln755Rdt27ZNX375pdq2bevFyisGp9OpY8eOuS9VTk9PV7169dSzZ08dO3ZMy5cvV7t27dS3b189++yzio+PV2BgoCSOndJwvv589tln6tChg/r166eUlBTFxsZy/JSyrKwsZWdn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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Construction du camembert\n",
+ "plt.figure(figsize=(8, 8))\n",
+ "plt.pie(c, autopct='%1.1f%%', startangle=140)\n",
+ "plt.title(\"Empreinte Personnelle\")\n",
+ "\n",
+ "plt.axis('equal') # S'assure que le camembert est dessiné comme un cercle.\n",
+ "plt.title('Empreinte carbone')\n",
+ "plt.legend(c.index)\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'Non-empty count': 54,\n",
+ " 'Unique non-empty entries': 54,\n",
+ " 'Sample entries': ['Très compliqué pour cette série. ',\n",
+ " 'Le film me semble représenter une vie bas carbone souhaitable',\n",
+ " 'Approche très intéressante, je laisse mon mail pour en savoir plus :) ',\n",
+ " \"La série met en marge des personnages plutôt en marge de la société de consommation, mais montre pourtant bien l'emprise du système du Tout voiture\",\n",
+ " \"C'est une série israélienne qui traite du problème palestinien... Il y a donc forcément un biais. Les méchants sont palestiniens. \"]}"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "col_qqch_ajouter = df_truncated[\"QUELQUE CHOSE A AJOUTER ?\"]\n",
+ "\n",
+ "# Analyzing the \"QUELQUE CHOSE A AJOUTER ?\" column to understand its content\n",
+ "# Check if the column exists\n",
+ "if \"QUELQUE CHOSE A AJOUTER ?\" in df_truncated.columns:\n",
+ " # Basic analysis of the column\n",
+ " # Count of non-empty entries\n",
+ " non_empty_count = col_qqch_ajouter.notna().sum()\n",
+ " # Unique non-empty entries\n",
+ " unique_non_empty_entries = col_qqch_ajouter.nunique()\n",
+ " # Sample of non-empty entries\n",
+ " sample_entries = col_qqch_ajouter.dropna().sample(min(5, non_empty_count)).tolist()\n",
+ " analysis_results = {\n",
+ " \"Non-empty count\": non_empty_count,\n",
+ " \"Unique non-empty entries\": unique_non_empty_entries,\n",
+ " \"Sample entries\": sample_entries\n",
+ " }\n",
+ "else:\n",
+ " analysis_results = \"Column 'QUELQUE CHOSE A AJOUTER ?' does not exist in the dataset.\"\n",
+ "\n",
+ "analysis_results\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": ".venv",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/notebooks/analyse-poc.ipynb b/notebooks/analyse-poc.ipynb
new file mode 100644
index 0000000..0b1b46a
--- /dev/null
+++ b/notebooks/analyse-poc.ipynb
@@ -0,0 +1,1019 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
Horodateur
\n",
+ "
TITRE DU CONTENU
\n",
+ "
ANNÉE DE PRODUCTION
\n",
+ "
PAYS DE PRODUCTION
\n",
+ "
CANAL DE DIFFUSION
\n",
+ "
SÉRIE OU FILM ?
\n",
+ "
QUELLE SAISON ?
\n",
+ "
LIEU(X) DE L'ACTION
\n",
+ "
EPOQUE DU RECIT
\n",
+ "
GENRE
\n",
+ "
...
\n",
+ "
Unnamed: 116
\n",
+ "
Unnamed: 117
\n",
+ "
Unnamed: 118
\n",
+ "
Unnamed: 119
\n",
+ "
Unnamed: 120
\n",
+ "
Unnamed: 121
\n",
+ "
Unnamed: 122
\n",
+ "
Unnamed: 123
\n",
+ "
Unnamed: 124
\n",
+ "
Unnamed: 125
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
7/29/23 13:06
\n",
+ "
Une nuit
\n",
+ "
2023
\n",
+ "
France
\n",
+ "
SALLE DE CINÉMA
\n",
+ "
FILM
\n",
+ "
NaN
\n",
+ "
Paris
\n",
+ "
2023
\n",
+ "
Comédie-romantique, Réaliste
\n",
+ "
...
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
7/30/23 15:18
\n",
+ "
David Brent, Life on the road
\n",
+ "
2016
\n",
+ "
UK
\n",
+ "
NETFLIX
\n",
+ "
FILM
\n",
+ "
NaN
\n",
+ "
Angleterre
\n",
+ "
2016
\n",
+ "
Comédie, Réaliste
\n",
+ "
...
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
7/30/23 15:47
\n",
+ "
Survival of the thickest
\n",
+ "
2022
\n",
+ "
Etats-Unis
\n",
+ "
NETFLIX
\n",
+ "
SÉRIE
\n",
+ "
1
\n",
+ "
New York
\n",
+ "
2022
\n",
+ "
Comédie-romantique
\n",
+ "
...
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
7/30/23 16:18
\n",
+ "
Meurtres à
\n",
+ "
2016
\n",
+ "
France
\n",
+ "
FRANCE TV
\n",
+ "
SÉRIE
\n",
+ "
???? je ne sais pas
\n",
+ "
en France, dans différentes régions selon les ...
\n",
+ "
2016
\n",
+ "
Thriller / Policier
\n",
+ "
...
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
7/31/23 9:28
\n",
+ "
Dernière nuit Milan
\n",
+ "
2022
\n",
+ "
Italie
\n",
+ "
SALLE DE CINÉMA
\n",
+ "
FILM
\n",
+ "
NaN
\n",
+ "
Milan
\n",
+ "
2022
\n",
+ "
Thriller / Policier
\n",
+ "
...
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 126 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Horodateur TITRE DU CONTENU ANNÉE DE PRODUCTION \\\n",
+ "0 7/29/23 13:06 Une nuit 2023 \n",
+ "1 7/30/23 15:18 David Brent, Life on the road 2016 \n",
+ "2 7/30/23 15:47 Survival of the thickest 2022 \n",
+ "3 7/30/23 16:18 Meurtres à 2016 \n",
+ "4 7/31/23 9:28 Dernière nuit Milan 2022 \n",
+ "\n",
+ " PAYS DE PRODUCTION CANAL DE DIFFUSION SÉRIE OU FILM ? QUELLE SAISON ? \\\n",
+ "0 France SALLE DE CINÉMA FILM NaN \n",
+ "1 UK NETFLIX FILM NaN \n",
+ "2 Etats-Unis NETFLIX SÉRIE 1 \n",
+ "3 France FRANCE TV SÉRIE ???? je ne sais pas \n",
+ "4 Italie SALLE DE CINÉMA FILM NaN \n",
+ "\n",
+ " LIEU(X) DE L'ACTION EPOQUE DU RECIT \\\n",
+ "0 Paris 2023 \n",
+ "1 Angleterre 2016 \n",
+ "2 New York 2022 \n",
+ "3 en France, dans différentes régions selon les ... 2016 \n",
+ "4 Milan 2022 \n",
+ "\n",
+ " GENRE ... Unnamed: 116 Unnamed: 117 Unnamed: 118 \\\n",
+ "0 Comédie-romantique, Réaliste ... NaN NaN NaN \n",
+ "1 Comédie, Réaliste ... NaN NaN NaN \n",
+ "2 Comédie-romantique ... NaN NaN NaN \n",
+ "3 Thriller / Policier ... NaN NaN NaN \n",
+ "4 Thriller / Policier ... NaN NaN NaN \n",
+ "\n",
+ " Unnamed: 119 Unnamed: 120 Unnamed: 121 Unnamed: 122 Unnamed: 123 \\\n",
+ "0 NaN NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN NaN \n",
+ "3 NaN NaN NaN NaN NaN \n",
+ "4 NaN NaN NaN NaN NaN \n",
+ "\n",
+ " Unnamed: 124 Unnamed: 125 \n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 NaN NaN \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "\n",
+ "[5 rows x 126 columns]"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Getting started\n",
+ "\n",
+ "# A simple notebooks for testing some analyses on the first version of the questionnaire.\n",
+ "# Data are not pushed to github due to privacy reasons. \n",
+ "# The raw_data.csv should be copied to the data/ folder. \n",
+ "\n",
+ "# Let's first load the data to understand its structure and then compute general statistical information.\n",
+ "import pandas as pd\n",
+ "\n",
+ "# Load the data\n",
+ "# file_path = './data/Treated_data.csv'\n",
+ "file_path = '../data/raw_data.csv'\n",
+ "data = pd.read_csv(file_path)\n",
+ "\n",
+ "# Display the first few rows of the dataframe to understand its structure\n",
+ "data.head()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
ANNÉE DE PRODUCTION
\n",
+ "
MORPHOLOGIE 1/2 (OPTIONNEL)
\n",
+ "
MORPHOLOGIE 1/2 (OPTIONNEL).1
\n",
+ "
TYPE DE RESIDENCE [Studio].1
\n",
+ "
MORPHOLOGIE 1/2 (OPTIONNEL).2
\n",
+ "
TYPE DE RESIDENCE [Colocation].2
\n",
+ "
TYPE DE RESIDENCE [Studio].2
\n",
+ "
TYPE DE RESIDENCE [Hotel].2
\n",
+ "
VALEURS / TRAITS DE CARACTERE.2
\n",
+ "
MORPHOLOGIE 1/2 (OPTIONNEL).3
\n",
+ "
...
\n",
+ "
MORPHOLOGIE 2/2 (OPTIONNEL).1
\n",
+ "
MORPHOLOGIE 2/2 (OPTIONNEL).2
\n",
+ "
MORPHOLOGIE 2/2 (OPTIONNEL).3
\n",
+ "
Unnamed: 119
\n",
+ "
Unnamed: 120
\n",
+ "
Unnamed: 121
\n",
+ "
Unnamed: 122
\n",
+ "
Unnamed: 123
\n",
+ "
Unnamed: 124
\n",
+ "
Unnamed: 125
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
count
\n",
+ "
203.000000
\n",
+ "
199.000000
\n",
+ "
75.000000
\n",
+ "
0.0
\n",
+ "
20.00000
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
7.000000
\n",
+ "
...
\n",
+ "
73.000000
\n",
+ "
20.000000
\n",
+ "
7.000000
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
0.0
\n",
+ "
\n",
+ "
\n",
+ "
mean
\n",
+ "
2017.832512
\n",
+ "
3.733668
\n",
+ "
3.813333
\n",
+ "
NaN
\n",
+ "
3.35000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
2.714286
\n",
+ "
...
\n",
+ "
2.136986
\n",
+ "
2.300000
\n",
+ "
2.285714
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
std
\n",
+ "
10.463114
\n",
+ "
0.986997
\n",
+ "
1.086693
\n",
+ "
NaN
\n",
+ "
1.03999
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
1.496026
\n",
+ "
...
\n",
+ "
1.071280
\n",
+ "
1.128576
\n",
+ "
1.112697
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
min
\n",
+ "
1957.000000
\n",
+ "
1.000000
\n",
+ "
1.000000
\n",
+ "
NaN
\n",
+ "
1.00000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
1.000000
\n",
+ "
...
\n",
+ "
1.000000
\n",
+ "
1.000000
\n",
+ "
1.000000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
25%
\n",
+ "
2018.000000
\n",
+ "
3.000000
\n",
+ "
3.000000
\n",
+ "
NaN
\n",
+ "
3.00000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
1.500000
\n",
+ "
...
\n",
+ "
1.000000
\n",
+ "
1.000000
\n",
+ "
1.500000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
50%
\n",
+ "
2022.000000
\n",
+ "
4.000000
\n",
+ "
4.000000
\n",
+ "
NaN
\n",
+ "
3.00000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
3.000000
\n",
+ "
...
\n",
+ "
2.000000
\n",
+ "
2.500000
\n",
+ "
2.000000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
75%
\n",
+ "
2023.000000
\n",
+ "
4.500000
\n",
+ "
5.000000
\n",
+ "
NaN
\n",
+ "
4.00000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
3.500000
\n",
+ "
...
\n",
+ "
3.000000
\n",
+ "
3.000000
\n",
+ "
3.000000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
max
\n",
+ "
2023.000000
\n",
+ "
5.000000
\n",
+ "
5.000000
\n",
+ "
NaN
\n",
+ "
5.00000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
5.000000
\n",
+ "
...
\n",
+ "
5.000000
\n",
+ "
4.000000
\n",
+ "
4.000000
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
8 rows × 35 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ANNÉE DE PRODUCTION MORPHOLOGIE 1/2 (OPTIONNEL) \\\n",
+ "count 203.000000 199.000000 \n",
+ "mean 2017.832512 3.733668 \n",
+ "std 10.463114 0.986997 \n",
+ "min 1957.000000 1.000000 \n",
+ "25% 2018.000000 3.000000 \n",
+ "50% 2022.000000 4.000000 \n",
+ "75% 2023.000000 4.500000 \n",
+ "max 2023.000000 5.000000 \n",
+ "\n",
+ " MORPHOLOGIE 1/2 (OPTIONNEL).1 TYPE DE RESIDENCE [Studio].1 \\\n",
+ "count 75.000000 0.0 \n",
+ "mean 3.813333 NaN \n",
+ "std 1.086693 NaN \n",
+ "min 1.000000 NaN \n",
+ "25% 3.000000 NaN \n",
+ "50% 4.000000 NaN \n",
+ "75% 5.000000 NaN \n",
+ "max 5.000000 NaN \n",
+ "\n",
+ " MORPHOLOGIE 1/2 (OPTIONNEL).2 TYPE DE RESIDENCE [Colocation].2 \\\n",
+ "count 20.00000 0.0 \n",
+ "mean 3.35000 NaN \n",
+ "std 1.03999 NaN \n",
+ "min 1.00000 NaN \n",
+ "25% 3.00000 NaN \n",
+ "50% 3.00000 NaN \n",
+ "75% 4.00000 NaN \n",
+ "max 5.00000 NaN \n",
+ "\n",
+ " TYPE DE RESIDENCE [Studio].2 TYPE DE RESIDENCE [Hotel].2 \\\n",
+ "count 0.0 0.0 \n",
+ "mean NaN NaN \n",
+ "std NaN NaN \n",
+ "min NaN NaN \n",
+ "25% NaN NaN \n",
+ "50% NaN NaN \n",
+ "75% NaN NaN \n",
+ "max NaN NaN \n",
+ "\n",
+ " VALEURS / TRAITS DE CARACTERE.2 MORPHOLOGIE 1/2 (OPTIONNEL).3 ... \\\n",
+ "count 0.0 7.000000 ... \n",
+ "mean NaN 2.714286 ... \n",
+ "std NaN 1.496026 ... \n",
+ "min NaN 1.000000 ... \n",
+ "25% NaN 1.500000 ... \n",
+ "50% NaN 3.000000 ... \n",
+ "75% NaN 3.500000 ... \n",
+ "max NaN 5.000000 ... \n",
+ "\n",
+ " MORPHOLOGIE 2/2 (OPTIONNEL).1 MORPHOLOGIE 2/2 (OPTIONNEL).2 \\\n",
+ "count 73.000000 20.000000 \n",
+ "mean 2.136986 2.300000 \n",
+ "std 1.071280 1.128576 \n",
+ "min 1.000000 1.000000 \n",
+ "25% 1.000000 1.000000 \n",
+ "50% 2.000000 2.500000 \n",
+ "75% 3.000000 3.000000 \n",
+ "max 5.000000 4.000000 \n",
+ "\n",
+ " MORPHOLOGIE 2/2 (OPTIONNEL).3 Unnamed: 119 Unnamed: 120 \\\n",
+ "count 7.000000 0.0 0.0 \n",
+ "mean 2.285714 NaN NaN \n",
+ "std 1.112697 NaN NaN \n",
+ "min 1.000000 NaN NaN \n",
+ "25% 1.500000 NaN NaN \n",
+ "50% 2.000000 NaN NaN \n",
+ "75% 3.000000 NaN NaN \n",
+ "max 4.000000 NaN NaN \n",
+ "\n",
+ " Unnamed: 121 Unnamed: 122 Unnamed: 123 Unnamed: 124 Unnamed: 125 \n",
+ "count 0.0 0.0 0.0 0.0 0.0 \n",
+ "mean NaN NaN NaN NaN NaN \n",
+ "std NaN NaN NaN NaN NaN \n",
+ "min NaN NaN NaN NaN NaN \n",
+ "25% NaN NaN NaN NaN NaN \n",
+ "50% NaN NaN NaN NaN NaN \n",
+ "75% NaN NaN NaN NaN NaN \n",
+ "max NaN NaN NaN NaN NaN \n",
+ "\n",
+ "[8 rows x 35 columns]"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Compute general statistical information for the numerical columns in the data\n",
+ "statistical_info = data.describe()\n",
+ "\n",
+ "# Display the statistical information\n",
+ "statistical_info\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "['Horodateur', 'TITRE DU CONTENU', 'ANNÉE DE PRODUCTION', 'PAYS DE PRODUCTION', 'CANAL DE DIFFUSION', 'SÉRIE OU FILM ?', 'QUELLE SAISON ?', \"LIEU(X) DE L'ACTION\", 'EPOQUE DU RECIT', 'GENRE', 'POSITION DANS LE RECIT', 'GENRE.1', 'AGE', 'ETHNICITE PERCUE (OPTIONNEL)', 'MORPHOLOGIE 1/2 (OPTIONNEL)', 'PAYS DE RESIDENCE', 'TYPE DE RESIDENCE [Appartement]', 'TYPE DE RESIDENCE [Colocation]', 'TYPE DE RESIDENCE [Maison individuelle]', 'TYPE DE RESIDENCE [Studio]', 'TYPE DE RESIDENCE [Hotel]', 'TYPE DE RESIDENCE [Ferme]', 'TYPE DE RESIDENCE [Alternatif/communautaire]', 'TYPE DE RESIDENCE [On ne sait pas / Autre ]', 'METIER / OCCUPATION ?', 'CATEGORIE SOCIALE PERCUE ?', 'ASPIRATIONS', 'VALEURS / TRAITS DE CARACTERE', 'SOUHAITEZ-VOUS AJOUTER UN PERSONNAGE ?', 'POSITION DANS LE RECIT.1', 'GENRE.2', 'AGE.1', 'ETHNICITE PERCUE (OPTIONNEL).1', 'MORPHOLOGIE 1/2 (OPTIONNEL).1', 'PAYS DE RESIDENCE.1', 'TYPE DE RESIDENCE [Appartement].1', 'TYPE DE RESIDENCE [Colocation].1', 'TYPE DE RESIDENCE [Maison individuelle].1', 'TYPE DE RESIDENCE [Studio].1', 'TYPE DE RESIDENCE [Hotel].1', 'TYPE DE RESIDENCE [Ferme].1', 'TYPE DE RESIDENCE [Alternatif/communautaire].1', 'TYPE DE RESIDENCE [On ne sait pas / Autre ].1', 'METIER / OCCUPATION ?.1', 'CATEGORIE SOCIALE PERCUE ?.1', 'ASPIRATIONS.1', 'VALEURS / TRAITS DE CARACTERE.1', 'SOUHAITEZ-VOUS AJOUTER UN PERSONNAGE ?.1', 'POSITION DANS LE RECIT.2', 'GENRE.3', 'AGE.2', 'ETHNICITE PERCUE (OPTIONNEL).2', 'MORPHOLOGIE 1/2 (OPTIONNEL).2', 'PAYS DE RESIDENCE.2', 'TYPE DE RESIDENCE [Appartement].2', 'TYPE DE RESIDENCE [Colocation].2', 'TYPE DE RESIDENCE [Maison individuelle].2', 'TYPE DE RESIDENCE [Studio].2', 'TYPE DE RESIDENCE [Hotel].2', 'TYPE DE RESIDENCE [Ferme].2', 'TYPE DE RESIDENCE [Alternatif/communautaire].2', 'TYPE DE RESIDENCE [On ne sait pas / Autre ].2', 'METIER / OCCUPATION ?.2', 'CATEGORIE SOCIALE PERCUE ?.2', 'ASPIRATIONS.2', 'VALEURS / TRAITS DE CARACTERE.2', 'SOUHAITEZ-VOUS AJOUTER UN PERSONNAGE ?.2', 'POSITION DANS LE RECIT.3', 'GENRE.4', 'AGE.3', 'ETHNICITE PERCUE (OPTIONNEL).3', 'MORPHOLOGIE 1/2 (OPTIONNEL).3', 'PAYS DE RESIDENCE.3', 'TYPE DE RESIDENCE [Appartement].3', 'TYPE DE RESIDENCE [Colocation].3', 'TYPE DE RESIDENCE [Maison individuelle].3', 'TYPE DE RESIDENCE [Studio].3', 'TYPE DE RESIDENCE [Hotel].3', 'TYPE DE RESIDENCE [Ferme].3', 'TYPE DE RESIDENCE [Alternatif/communautaire].3', 'TYPE DE RESIDENCE [On ne sait pas / Autre ].3', 'METIER / OCCUPATION ?.3', 'CATEGORIE SOCIALE PERCUE ?.3', 'ASPIRATIONS.3', 'VALEURS / TRAITS DE CARACTERE.3', \"QUELLE EST L'EMPREINTE CARBONE ANNUELLE DU PERSONNAGE ?\", \"Voulez-vous estimer l'empreinte carbone d'un autre personnage ?\", \"QUELLE EST L'EMPREINTE CARBONE ANNUELLE DU PERSONNAGE ?.1\", \"Voulez-vous estimer l'empreinte carbone d'un autre personnage ?.1\", \"QUELLE EST L'EMPREINTE CARBONE ANNUELLE DU PERSONNAGE ?.2\", \"Voulez-vous estimer l'empreinte carbone d'un autre personnage ?.2\", \"QUELLE EST L'EMPREINTE CARBONE ANNUELLE DU PERSONNAGE ?.3\", 'CONSOMMATION & MATERIALISME', 'CONSOMMATION & MATERIALISME.1', 'MODES DE VIE', 'MODES DE VIE.1', 'RAPPORT AU VIVANT', 'RAPPORT AU VIVANT.1', 'CRISE ENVIRONNEMENTALE', 'CRISE ENVIRONNEMENTALE.1', 'Y A-T-IL UNE PRISE DE RECUL ?', 'EST-CE NECESSAIRE ?', 'QUELQUE CHOSE A AJOUTER ?', 'VOTRE EMAIL ?', 'Traitement du récit', 'Type de monde du récit', 'VALEURS / TRAITS DE CARACTÈRE', 'MORPHOLOGIE 2/2 (OPTIONNEL)', 'VALEURS / TRAITS DE CARACTÈRE.1', 'VALEURS / TRAITS DE CARACTÈRE.2', 'MORPHOLOGIE 2/2 (OPTIONNEL).1', 'MORPHOLOGIE 2/2 (OPTIONNEL).2', 'MORPHOLOGIE 2/2 (OPTIONNEL).3', 'VALEURS / TRAITS DE CARACTERE.4', 'VALEURS / TRAITS DE CARACTERE.5', 'VALEURS / TRAITS DE CARACTERE.6', 'Unnamed: 116', 'Unnamed: 117', 'Unnamed: 118', 'Unnamed: 119', 'Unnamed: 120', 'Unnamed: 121', 'Unnamed: 122', 'Unnamed: 123', 'Unnamed: 124', 'Unnamed: 125']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# colonnes\n",
+ "print(list(data.columns))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Le nombre de réponses est de \n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "203"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "titre = \"TITRE DU CONTENU\"\n",
+ "c = data[titre].count()\n",
+ "print('Le nombre de réponses est de ')\n",
+ "c "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'Non-empty count': 54,\n",
+ " 'Unique non-empty entries': 54,\n",
+ " 'Sample entries': [\"Ce genre de série ne s'intéresse pas au mode de vie des protagonistes principaux, on est concentré sur leur boulot et leur problèmes sentimentaux. Néanmoins dans le boulot utilisation de gros SUV ou 4x4 non indispensables\",\n",
+ " 'Un film assez ancien des années 80 mais finalement qui interroge sur le mode de vie \"moderne\" et considéré comme l\\'aspiration et la norme de l\\'époque. ',\n",
+ " 'Série plutôt écolo mais pas spécialement proactive sur le sujet. Prône l’égalité et le dialogue, ce qui est déjà beaucoup !',\n",
+ " 'Série qui correspond vraiment à la mentalité des années 2000 sur ces sujets.',\n",
+ " 'Voilà un exemple très intéressant : le film se passe dans un monde pour l\\'essentiel réaliste, dans une société contemporaine et occidental. Il obtient pourtant un score très neutre pour deux raisons : il y a des objets, des voitures, des smartphones, mais on ne les \"voit\" pas, ils ne sont jamais saillants, ils sont toujours intégré dans l\\'image d\\'une manière qui renforce son effet graphique sans les valoriser ou mettre en évidence leur fonction. Deux : la nature occupe une place importante (c\\'est peut-être réellement le cas à la Nouvelle Orléans ?) et, alors même que l\\'action se déroule en ville, on ne se sent pas oppressé']}"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "# Analyzing the \"QUELQUE CHOSE A AJOUTER ?\" column to understand its content\n",
+ "# Check if the column exists\n",
+ "if \"QUELQUE CHOSE A AJOUTER ?\" in data.columns:\n",
+ " # Basic analysis of the column\n",
+ " # Count of non-empty entries\n",
+ " non_empty_count = data[\"QUELQUE CHOSE A AJOUTER ?\"].notna().sum()\n",
+ " # Unique non-empty entries\n",
+ " unique_non_empty_entries = data[\"QUELQUE CHOSE A AJOUTER ?\"].nunique()\n",
+ " # Sample of non-empty entries\n",
+ " sample_entries = data[\"QUELQUE CHOSE A AJOUTER ?\"].dropna().sample(min(5, non_empty_count)).tolist()\n",
+ " analysis_results = {\n",
+ " \"Non-empty count\": non_empty_count,\n",
+ " \"Unique non-empty entries\": unique_non_empty_entries,\n",
+ " \"Sample entries\": sample_entries\n",
+ " }\n",
+ "else:\n",
+ " analysis_results = \"Column 'QUELQUE CHOSE A AJOUTER ?' does not exist in the dataset.\"\n",
+ "\n",
+ "analysis_results\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "TITRE DU CONTENU\n",
+ "Polar park 3\n",
+ "Une année difficile 3\n",
+ "Sambre 3\n",
+ "Le règne animal 3\n",
+ "Anatomie d'une chute 2\n",
+ "Voleuses 2\n",
+ "D'argent et de sang 2\n",
+ "The Crown 2\n",
+ "Polar Park 2\n",
+ "Bodies 2\n",
+ "À plein temps 2\n",
+ "Revoir Paris 2\n",
+ "Le livre des solutions 2\n",
+ "Yannick 2\n",
+ "Sense8 2\n",
+ "Second Tour 2\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Trouver les titres qui apparaissent plus de 4 fois dans la colonne \"TITRE\" (car chaque titre a 4 lignes, une pour chaque personnage)\n",
+ "titles_more_than_once = data[titre].value_counts()\n",
+ "titles_more_than_once = titles_more_than_once[titles_more_than_once > 1]\n",
+ "\n",
+ "titles_more_than_once\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([2023, 2016, 2022, 1997, 2015, 2006, 2018, 2021, 1984, 1968, 2020,\n",
+ " 2019, 1971, 2017, 2001, 2012, 1987, 2005, 1975, 1982, 2013, 2014,\n",
+ " 2010, 1994, 2009, 1988, 2000, 2011, 1999, 1957, 2002])"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# annee = \"ANNEE\"\n",
+ "annee = \"ANNÉE DE PRODUCTION\"\n",
+ "\n",
+ "# Extract unique values from the \"ANNEE\" column to understand its format\n",
+ "unique_years = data[annee].unique()\n",
+ "\n",
+ "# Display a few unique values for inspection\n",
+ "unique_years[:100]\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def visualize_year_distribution(years_data, chart_title):\n",
+ " \"\"\"\n",
+ " Visualise la distribution des années, y compris les intervalles, dans un ensemble de données d'années.\n",
+ " \n",
+ " Parameters:\n",
+ " - years_data (list or pd.Series): Un tableau ou une série Pandas contenant des années ou des intervalles d'années.\n",
+ " \n",
+ " Returns:\n",
+ " - Affiche un histogramme de la distribution des années.\n",
+ " \"\"\"\n",
+ " import pandas as pd\n",
+ " import matplotlib.pyplot as plt\n",
+ " import re # For regular expression operations\n",
+ " \n",
+ " \n",
+ " # Convertir toutes les valeurs en chaînes pour gérer les intervalles potentiels comme des entrées uniques\n",
+ " years_data = years_data.astype(str)\n",
+ " \n",
+ " # Séparer les intervalles en années individuelles et compter la fréquence de chaque année\n",
+ " all_years = []\n",
+ " # Utilise un set pour les valeurs non numériques\n",
+ " non_numeric_entries = set()\n",
+ " \n",
+ " for year in years_data:\n",
+ " if re.search(r'[a-z]', year): # If there are no digits in the string\n",
+ " non_numeric_entries.add(year)\n",
+ " elif \",\" in year:\n",
+ " years_list = year.split(\",\")\n",
+ " for y in years_list:\n",
+ " all_years.append(int(y.strip())) # Ajouter chaque année en la convertissant en entier\n",
+ " elif \"+/-\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, uncertainty = year.split(\"+/-\")\n",
+ " if (start_year != ''):\n",
+ " all_years.extend(range(int(start_year), int(start_year) + uncertainty + 1))\n",
+ " print(year)\n",
+ " else:\n",
+ " non_numeric_entries.add(year)\n",
+ " elif \"-\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, end_year = year.split(\"-\")\n",
+ " all_years.extend(range(int(start_year), int(end_year) + 1))\n",
+ " elif \"/\" in year: # Vérifier si c'est un intervalle\n",
+ " start_year, end_year = year.split(\"/\")\n",
+ " all_years.extend(range(int(start_year), int(end_year) + 1))\n",
+ " else:\n",
+ " all_years.append(int(year))\n",
+ " \n",
+ " # Print non-numeric entries if any\n",
+ " if non_numeric_entries:\n",
+ " print(\"Non-numeric entries found:\", non_numeric_entries)\n",
+ " \n",
+ " # Proceed with visualization only if there are numeric years\n",
+ " if all_years:\n",
+ " # Créer un DataFrame à partir de la liste des années pour faciliter la visualisation\n",
+ " df_years = pd.DataFrame(all_years, columns=[\"Year\"])\n",
+ " \n",
+ " # Visualiser la distribution des années avec un histogramme\n",
+ " plt.figure(figsize=(10, 6))\n",
+ " df_years[\"Year\"].hist(bins=len(df_years[\"Year\"].unique()), color=\"skyblue\", edgecolor=\"black\")\n",
+ " plt.title(chart_title)\n",
+ " plt.xlabel(\"Année\")\n",
+ " plt.ylabel(\"Fréquence\")\n",
+ " plt.xticks(rotation=45)\n",
+ " plt.tight_layout()\n",
+ " plt.show()\n",
+ " else:\n",
+ " print(\"No numeric years found for visualization.\")\n",
+ " return all_years\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAJOCAYAAABBfN/cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABg+0lEQVR4nO3df3zN9f//8fs59sM2G4bNll8L+ZkJify2IT8SEYpIioryo1Iqv/VW9IMI/SQV/ZRK+bFQy4/kdyUtJIvZFsNmm9l2Xt8/fHc+HRtm22vHzrldL5cul87rPM95Pc7r8Xod577XL4thGIYAAAAAAIAprM4uAAAAAAAAV0bwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAACmWbp0qebPn+/sMgAAcCqCNwC4uClTpshisRTLvNq3b6/27dvbH3///feyWCz67LPPimX+9913n2rUqFEs88qPnM///fffO7sUp/jqq6/00EMPqUmTJs4uxa5GjRq67777nF1Gkbp4uytOFotFU6ZMccq8AaAkIXgDQAmyZMkSWSwW+3+lS5dWaGiounTpotdee00pKSlFMp+4uDhNmTJFe/bsKZL3K0rXcm34P3///beGDRumDz/8ULfeequzy0EhfPvtt4RrACgkgjcAlEDTpk3T+++/r4ULF+rRRx+VJI0ZM0Y33nijfvnlF4exzz33nNLT06/q/ePi4jR16tSrDrfr1q3TunXrruo1V+tytb311luKiYkxdf7Inz179uiNN95Q7969nV0KCunbb7/V1KlT83wuPT1dzz33XDFXBAAlj4ezCwAAXL2uXbuqWbNm9scTJkzQhg0b1KNHD/Xs2VP79++Xj4+PJMnDw0MeHuZ+3aelpcnX11deXl6mzudKPD09nTp//J9evXo5u4RrXmpqqvz8/JxdRqGULl3a2SUAQInAHm8AcBEdO3bUxIkTdeTIEX3wwQf26Xmd4x0VFaXWrVurXLlyKlOmjOrUqaNnnnlG0oXzkm+++WZJ0tChQ+2HtS9ZskTShfNJGzZsqJ07d6pt27by9fW1v/ZS55pmZ2frmWeeUeXKleXn56eePXvqn3/+cRhzqXNv//ueV6otr3O8U1NT9fjjj6tq1ary9vZWnTp19NJLL8kwDIdxFotFo0aN0sqVK9WwYUN5e3urQYMGWrNmTd4L/CJHjx5Vr1695Ofnp6CgII0dO1YZGRl5jt22bZtuu+02lS1bVr6+vmrXrp02b97sMCYlJUVjxoxRjRo15O3traCgIHXq1Em7du26bB1HjhzRI488ojp16sjHx0cVKlTQXXfdpb///tthXM5pC5s3b9a4ceNUqVIl+fn5qXfv3vr3338dxtaoUUM9evTQpk2b1Lx5c5UuXVrXX3+9li5dmmv+p0+f1pgxY+zLu1atWnrxxRdls9kcxtlsNs2ZM0cNGjRQ6dKlFRwcrBEjRujUqVMO43bs2KEuXbqoYsWK8vHxUVhYmO6///7LLgNJMgxDM2bMUJUqVeTr66sOHTpo3759eY7Nb815yVk269atU+PGjVW6dGnVr19fK1ascBiXs7x/+OEHPfLIIwoKClKVKlXszy9YsEANGjSQt7e3QkNDNXLkSJ0+fTrX/N58803VrFlTPj4+at68uX788cdcY3LmdXHPL3XNgW3btqlbt24qX768/Pz81KhRI82dO1fShW3q9ddflySH01xy5HWO9+7du9W1a1cFBASoTJkyioiI0E8//ZRnjflZ/wDAFbDHGwBcyL333qtnnnlG69at04MPPpjnmH379qlHjx5q1KiRpk2bJm9vbx08eNAe/OrVq6dp06Zp0qRJGj58uNq0aSNJDufpnjx5Ul27dtWAAQM0aNAgBQcHX7au559/XhaLRU899ZQSExM1Z84cRUZGas+ePfY98/mRn9r+yzAM9ezZUxs3btSwYcPUuHFjrV27Vk8++aSOHTumV1991WH8pk2btGLFCj3yyCPy9/fXa6+9pj59+ig2NlYVKlS4ZF3p6emKiIhQbGysHnvsMYWGhur999/Xhg0bco3dsGGDunbtqqZNm2ry5MmyWq1avHixOnbsqB9//FHNmzeXJD300EP67LPPNGrUKNWvX18nT57Upk2btH///sterGz79u3asmWLBgwYoCpVqujvv//WwoUL1b59e/3+++/y9fV1GP/oo4+qfPnymjx5sv7++2/NmTNHo0aN0scff+ww7uDBg+rbt6+GDRumIUOG6N1339V9992npk2bqkGDBpIuHPnQrl07HTt2TCNGjFC1atW0ZcsWTZgwQcePH9ecOXPs7zdixAgtWbJEQ4cO1WOPPabDhw9r/vz52r17tzZv3ixPT08lJiaqc+fOqlSpkp5++mmVK1dOf//9d65Qm5dJkyZpxowZ6tatm7p166Zdu3apc+fOOn/+vMO4q6n5Ug4cOKD+/fvroYce0pAhQ7R48WLdddddWrNmjTp16uQw9pFHHlGlSpU0adIkpaamSrrwx7GpU6cqMjJSDz/8sGJiYrRw4UJt377dviwk6Z133tGIESN06623asyYMfrrr7/Us2dPBQYGqmrVqlesMy9RUVHq0aOHQkJCNHr0aFWuXFn79+/XqlWrNHr0aI0YMUJxcXGKiorS+++/f8X327dvn9q0aaOAgACNHz9enp6eeuONN9S+fXv98MMPuuWWWxzG53f9A4ASzwAAlBiLFy82JBnbt2+/5JiyZcsaN910k/3x5MmTjf9+3b/66quGJOPff/+95Hts377dkGQsXrw413Pt2rUzJBmLFi3K87l27drZH2/cuNGQZFx33XVGcnKyffonn3xiSDLmzp1rn1a9enVjyJAhV3zPy9U2ZMgQo3r16vbHK1euNCQZM2bMcBjXt29fw2KxGAcPHrRPk2R4eXk5TNu7d68hyZg3b16uef3XnDlzDEnGJ598Yp+Wmppq1KpVy5BkbNy40TAMw7DZbEbt2rWNLl26GDabzT42LS3NCAsLMzp16mSfVrZsWWPkyJGXnW9e0tLSck3bunWrIclYunSpfVrOuhQZGelQy9ixY41SpUoZp0+ftk+rXr26IcmIjo62T0tMTDS8vb2Nxx9/3D5t+vTphp+fn/Hnn386zP/pp582SpUqZcTGxhqGYRg//vijIcn48MMPHcatWbPGYfoXX3xxxfU9L4mJiYaXl5fRvXt3h8/2zDPPGJIc1rP81nwpOcvm888/t087c+aMERIS4rAd5izv1q1bG1lZWblq7dy5s5GdnW2fPn/+fEOS8e677xqGYRjnz583goKCjMaNGxsZGRn2cW+++aYhyWEbyZnX4cOHHWrN2R5z1sesrCwjLCzMqF69unHq1CmHsf9dbiNHjjQu9ZNRkjF58mT74169ehleXl7GoUOH7NPi4uIMf39/o23btrlqzM/6BwCugEPNAcDFlClT5rJXNy9Xrpwk6csvv8zXobR58fb21tChQ/M9fvDgwfL397c/7tu3r0JCQvTtt98WaP759e2336pUqVJ67LHHHKY//vjjMgxDq1evdpgeGRmpmjVr2h83atRIAQEB+uuvv644n5CQEPXt29c+zdfXV8OHD3cYt2fPHh04cED33HOPTp48qRMnTujEiRNKTU1VRESEoqOj7T0pV66ctm3bpri4uKv6zP89giAzM1MnT55UrVq1VK5cuTwPUx8+fLjDocNt2rRRdna2jhw54jCufv369iMMJKlSpUqqU6eOw7L59NNP1aZNG5UvX97+2U6cOKHIyEhlZ2crOjraPq5s2bLq1KmTw7imTZuqTJky2rhxo30ZSNKqVauUmZmZ72Xw3Xff6fz583r00UcdPtuYMWNyjc1vzZcTGhrqcBG5gIAADR48WLt371Z8fLzD2AcffFClSpXKVeuYMWNktVodxgUEBOibb76RdOGQ+8TERD300EMO11K47777VLZs2SsvlDzs3r1bhw8f1pgxY+zLOkdBbkGYnZ2tdevWqVevXrr++uvt00NCQnTPPfdo06ZNSk5OdnhNftc/ACjpONQcAFzM2bNnFRQUdMnn+/fvr7ffflsPPPCAnn76aUVEROjOO+9U3759HX74X8511113VRdSq127tsNji8WiWrVq5ToHtagdOXJEoaGhDqFfunDIes7z/1WtWrVc71G+fPlc5x3nNZ9atWrlCit16tRxeHzgwAFJ0pAhQy75XmfOnFH58uU1a9YsDRkyRFWrVlXTpk3VrVs3DR482CHQ5CU9PV0zZ87U4sWLdezYMYdz2c+cOZNr/MWfuXz58pKU6zPnZ9kcOHBAv/zyiypVqpRnbYmJifZxZ86cueR6mjOuXbt26tOnj6ZOnapXX31V7du3V69evXTPPffI29s7z9dK/9fXi9e7SpUq2T/f1dZ8OXn1/oYbbpB04bZqlStXtk8PCwvLs9aL1xUvLy9df/319ucv9Zk8PT2vuE5cyqFDhyRJDRs2LNDrL/bvv/8qLS0t12eRLmxzNptN//zzj/3UBCn/6x8AlHQEbwBwIUePHtWZM2dUq1atS47x8fFRdHS0Nm7cqG+++UZr1qzRxx9/rI4dO2rdunUOe+Mu9x5F7VJ72LKzs/NVU1G41HyMiy7EVlA5e7Nnz56txo0b5zmmTJkykqR+/fqpTZs2+uKLL7Ru3TrNnj1bL774olasWKGuXbtech6PPvqoFi9erDFjxqhly5YqW7asLBaLBgwYkOcRDvn9zPkZZ7PZ1KlTJ40fPz7PsTlh1GazKSgoSB9++GGe43JCsMVi0WeffaaffvpJX3/9tdauXav7779fL7/8sn766Sf7siqM/NZcVMzYdi52uW3pWmP2NgcA1wqCNwC4kJyLH3Xp0uWy46xWqyIiIhQREaFXXnlF//vf//Tss89q48aNioyMLNBhppeTs6c3h2EYOnjwoBo1amSfVr58+Tyv4nzkyBGHPXpXU1v16tX13XffKSUlxWGv9x9//GF/vihUr15dv/32mwzDcKjv4nuK5xzGHhAQoMjIyCu+b0hIiB555BE98sgjSkxMVJMmTfT8889fNnh/9tlnGjJkiF5++WX7tHPnzuW5bItazZo1dfbs2St+tpo1a+q7775Tq1at8hVEW7RooRYtWuj555/XsmXLNHDgQH300Ud64IEH8hyf09cDBw44rDv//vtvrj2p+a35cg4ePJir93/++ack5brK/qVqjYmJcaj1/PnzOnz4sL2u/36mjh072sdlZmbq8OHDCg8Pt0/L2Wt8cc8vPsIjZ3387bffLvv587vNVapUSb6+vrnWe+nCNme1Wgt8ETgAKOk4xxsAXMSGDRs0ffp0hYWFaeDAgZccl5SUlGtazt7XnNtf5dxbuKjC2tKlSx3OO//ss890/PhxhwBZs2ZN/fTTTw5XnV61alWu245dTW3dunVTdna25s+f7zD91VdflcViuWyAvRrdunVTXFycPvvsM/u0tLQ0vfnmmw7jmjZtqpo1a+qll17S2bNnc71Pzm2UsrOzcx0WHhQUpNDQ0EveoixHqVKlcu0tnDdvXrHs7ezXr5+2bt2qtWvX5nru9OnTysrKso/Lzs7W9OnTc43Lysqy9/bUqVO5PsvF62peIiMj5enpqXnz5jm8Pq8rlOe35suJi4vTF198YX+cnJyspUuXqnHjxg6HmV+qVi8vL7322msOtb7zzjs6c+aMunfvLklq1qyZKlWqpEWLFjlsI0uWLMm1LeQE6v+en56dnZ1rfWzSpInCwsI0Z86cXO/x31ryu82VKlVKnTt31pdffulwGklCQoKWLVum1q1bKyAg4LLvAQCuij3eAFACrV69Wn/88YeysrKUkJCgDRs2KCoqStWrV9dXX32l0qVLX/K106ZNU3R0tLp3767q1asrMTFRCxYsUJUqVdS6dWtJF364lytXTosWLZK/v7/8/Px0yy235Do/Nb8C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w9qzZ48CAwMVEhKivn37ateuXVq1apWys7Pt520HBgbKy8tL9erV02233aYHH3xQixYtUmZmpkaNGqUBAwZwRXMAAAAAgNM5PXjv2LFDHTp0sD/OOQR8yJAhmjJlir766itJUuPGjR1et3HjRrVv316S9OGHH2rUqFGKiIiQ1WpVnz599NprrxVL/QAAAAAAXI7Tg3f79u1lGMYln7/cczkCAwO1bNmyoiwLAAAAAIAiUeLu4w0AAAAAQElC8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAEzk9OAdHR2t22+/XaGhobJYLFq5cqXD84ZhaNKkSQoJCZGPj48iIyN14MABhzFJSUkaOHCgAgICVK5cOQ0bNkxnz54txk8BAAAAAEDenB68U1NTFR4ertdffz3P52fNmqXXXntNixYt0rZt2+Tn56cuXbro3Llz9jEDBw7Uvn37FBUVpVWrVik6OlrDhw8vro8AAAAAAMAleTi7gK5du6pr1655PmcYhubMmaPnnntOd9xxhyRp6dKlCg4O1sqVKzVgwADt379fa9as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XtHR0frpp5+UkZGhwMBAfffdd2rZsqV9vg888IDS0tK0bNkyzZgxQz/++KPWrl1rf/7o0aOqWrWqYmJidMMNNxTvQgEAwIk8nF0AAAAoOjExMfr555/1xRdfSJI8PDzUv39/vfPOO2rfvr19XKNGjez/HxISIklKTExUtWrVJEk1atSwh+6cMYmJiZKkgwcPKi0tTZ06dXKY9/nz53XTTTdJkvbu3auNGzeqTJkyuWo8dOgQwRsA4FYI3gAAuJB33nlHWVlZDhdTMwxD3t7emj9/vn2ap6en/f8tFoukC+dt5/V8zpic58+ePStJ+uabb3Tdddc5jMu5svnZs2d1++2368UXX8xVY07QBwDAXRC8AQBwEVlZWVq6dKlefvllde7c2eG5Xr16afny5apbt26h51O/fn15e3srNjZW7dq1y3NMkyZN9Pnnn6tGjRry8ODnBgDAvXFxNQAAXMSqVat06tQpDRs2TA0bNnT4r0+fPnrnnXeKZD7+/v564oknNHbsWL333ns6dOiQdu3apXnz5um9996TJI0cOVJJSUm6++67tX37dh06dEhr167V0KFDlZ2dXSR1AABQUhC8AQBwEe+8844iIyNVtmzZXM/16dNHO3bs0C+//FIk85o+fbomTpyomTNnql69errtttv0zTffKCwsTJIUGhqqzZs3Kzs7W507d9aNN96oMWPGqFy5crJa+fkBAHAvXNUcAAAAAAAT8SdnAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARARvAAAAAABMRPAGAAAAAMBEBG8AAAAAAExE8AYAAAAAwEQEbwAAAAAATETwBgAAAADARP8PU65n++I5S6gAAAAASUVORK5CYII=",
+ "text/plain": [
+ "