Spaces:
Runtime error
Runtime error
Update streamlit_presentation/analyse.py
Browse files
streamlit_presentation/analyse.py
CHANGED
@@ -34,6 +34,16 @@ def repartition_par_categorie(st,data):
|
|
34 |
|
35 |
|
36 |
def repartition_longueur_categorie(st,data):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
data["designation_length"] = data["designation"].str.len()
|
38 |
data["description_length"] = data["description"].str.len()
|
39 |
|
@@ -54,13 +64,69 @@ def repartition_longueur_categorie(st,data):
|
|
54 |
with col2:
|
55 |
st.pyplot(plt)
|
56 |
|
57 |
-
with col3:
|
58 |
-
st.text('')
|
59 |
st.text('')
|
60 |
st.text('')
|
61 |
st.text('')
|
62 |
st.text('')
|
63 |
st.text('')
|
64 |
-
st.write(f'=> Longueur de la designation
|
65 |
-
st.write("on a une
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
|
35 |
|
36 |
def repartition_longueur_categorie(st,data):
|
37 |
+
|
38 |
+
val_code = data["prdtypecode"].unique()
|
39 |
+
st.text(f"Nombre de valeurs de la target: {len(val_code)}")
|
40 |
+
st.text(f"Liste des valeurs : {val_code}")
|
41 |
+
st.text("""
|
42 |
+
Les valeurs ne sont pas continues, agissent comme des labels
|
43 |
+
Les valeurs ne sont pas signifiantes
|
44 |
+
""")
|
45 |
+
st.write("")
|
46 |
+
st.write("")
|
47 |
data["designation_length"] = data["designation"].str.len()
|
48 |
data["description_length"] = data["description"].str.len()
|
49 |
|
|
|
64 |
with col2:
|
65 |
st.pyplot(plt)
|
66 |
|
67 |
+
with col3:
|
|
|
68 |
st.text('')
|
69 |
st.text('')
|
70 |
st.text('')
|
71 |
st.text('')
|
72 |
st.text('')
|
73 |
+
st.write(f'=> Longueur de la designation comprise entre {data["designation_length"].min()} et {data["designation_length"].max()} caractères')
|
74 |
+
st.write("on a une majeurepartie de la distribution entre 45 et 100 caractères, puis un pic à 250 caractères")
|
75 |
+
st.text('')
|
76 |
+
st.text('')
|
77 |
+
st.text('Les tailles des désignations sont relativement différentes selon les catégories')
|
78 |
+
plt.figure(figsize=(10,4))
|
79 |
+
sns.boxplot(x="prdtypecode",y="designation_length",data=data);
|
80 |
+
plt.title("Répartition des longueurs des designation par code");
|
81 |
+
plt.xlabel("Code produit");
|
82 |
+
plt.ylabel("Longueur de la designation en caractères");
|
83 |
+
plt.xticks(rotation=45)
|
84 |
+
st.pyplot(plt)
|
85 |
+
col1, col2 = st.columns([3,6])
|
86 |
+
with col2:
|
87 |
+
plt.figure(figsize=(10,4))
|
88 |
+
ax = sns.histplot(x='description_length', data=data,bins=100);
|
89 |
+
ax.axhline(data["description_length"].mean(),color="r",linewidth=2, alpha=0.5)
|
90 |
+
|
91 |
+
|
92 |
+
plt.xticks(rotation=45)
|
93 |
+
plt.xlabel("nb d'occurences");
|
94 |
+
plt.xlim(0);
|
95 |
+
plt.grid()
|
96 |
+
plt.title("Répartition des longueurs des descriptions");
|
97 |
+
st.pyplot(plt)
|
98 |
+
with col1:
|
99 |
+
st.write(data["description_length"].describe())
|
100 |
+
|
101 |
+
st.write("Nous observons des longueurs tres variables, qui s'étalent sur tout le spectre, avex peu de descriptions tres longues, nous pouvons regarder et voir si ce sont des aberrations ou des aberrances")
|
102 |
+
limit = st.number_input(label="Descriptions d'au moins:",min_value=200, max_value=12000, value=5000)
|
103 |
+
pic_8000 = data[data["description_length"] >= limit]
|
104 |
+
pic_8000 = pic_8000[["prdtypecode","description_length","description"]]
|
105 |
+
st.dataframe(pic_8000)
|
106 |
+
st.write("Nous constatons des textes correspondant à des descriptifs marketing, parfois sous forme HTML, contenant de nombreux détails.")
|
107 |
+
st.write("")
|
108 |
+
st.write("Recherche de chaines de tailles très petites")
|
109 |
+
limit_max = st.number_input(label="Descriptions d'au moins:",min_value=1, max_value=12000, value=12)
|
110 |
+
st.write("")
|
111 |
+
desc_invalides = data[data["description_length"] < limit_max]
|
112 |
+
desc_invalides = desc_invalides[["description_length","description"]]
|
113 |
+
st.dataframe(desc_invalides)
|
114 |
+
|
115 |
+
st.write(f"nous remarquons avoir {desc_invalides.shape[0]} observations triviales")
|
116 |
+
st.write("")
|
117 |
+
st.write("")
|
118 |
+
|
119 |
+
st.write("Analyse des cas où la description est vide")
|
120 |
+
st.write("")
|
121 |
+
desc_vides = data[pd.isna(data["description"])]
|
122 |
+
|
123 |
+
plt.figure(figsize=(10,4))
|
124 |
+
sns.histplot(x='designation_length', data=desc_vides,bins=100, stat='probability');
|
125 |
+
plt.xlabel("Longueur de la description en caractères");
|
126 |
+
plt.xlabel("occurences");
|
127 |
+
plt.xlim(0);
|
128 |
+
plt.grid()
|
129 |
+
plt.title("Répartition des longueurs des designations");
|
130 |
+
st.pyplot(plt)
|
131 |
+
st.write("")
|
132 |
+
st.write("La designation a globalement la même répartition en taille, lorsque la description est absente, qe lorsque la description est remplie.")
|