Sélectionner une page
Basiques Python : Data visualisation avec matplotlib & seaborn

Basiques Python : Data visualisation avec matplotlib & seaborn

Manipuler des dataframe avec python c’est une chose. Faire parler les chiffres en est une autre. On parle alors de Data visualisation. Python propose des librairies très puissantes (matplotlib & seaborn) pour des supports de visualisation comme des diagrammes en bâton (Bar chart), des diagrammes circulaires (Pie chart) ou encore les fameuses boîtes à moustache (Box plot).

Cet article vous permettra de mettre en place rapidement des graphiques qui illustreront vos analyses ! Les exemples mentionnés ci-dessous permettent d’analyser un dataset (données sur le Black friday) que vous pouvez télécharger pour vous exercer.

# Je charge ici le fichier que je viens de télécharger
import pandas as pd
import numpy as np
black_friday = pd.read_csv("BlackFriday.csv")

# On commence par importer la librairie maptplotlib
import matplotlib.pyplot as plt

Préparation de la donnée

# On va créer un dataframe avec les données groupées par tranche d'âge
age_groupe = black_friday.groupby("Age")

# On souhaite connaître le volume des ventes réalisées par catégorie d'âge
achats_clients=dict() # On initialise un dictionnaire
for age,group in age_groupe:# On lance un boucle for pour compléter alimenter le dictionnaire avec la donnée
    achats_clients[age]=sum(group["Purchase"]) 

# On vérifie le dictionnaire
achats_clients

Créer le premier graphique avec plt.plot

# Je souhaite représenter les volumes de ventes en fonction des tranches d'âge
plt.plot(list(achats_clients.keys()),list(achats_clients.values())) # On convertit en liste avec list() les "keys" et "values" du dictionnaire
plt.draw() # j'affiche mon graphique

Ajouter des points dans le graphique avec marker= »o »

# A savoir il est possible d'afficher des points pour une meilleure lisibilité avec marker="o"
plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker="o")

# A savoir il est possible de n'afficher que les points avec linestyle=""
plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker="o", linestyle="")

Ajouter un titre avec plt.title et des annotations pour les axes avec plt.xlabel et plt.ylabel

plt.plot(list(achats_clients.keys()),list(achats_clients.values()),marker='o',linestyle="")
plt.xlabel("Catégorie d'âge")
plt.ylabel("Somme totale des ventes")
plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre

plt.draw()

Créer rapidement un nuage de points avec plt.scatter

# Scatter permet de créer directement un nuage de point et fonctionne aussi avec des dictionnaires
plt.scatter(achats_clients.keys(),achats_clients.values())

Agrandir son graphique avec plt.rcParams

#Agrandir son nuage de point
plt.rcParams["figure.figsize"]=[16,9]
plt.scatter(achats_clients.keys(),achats_clients.values())

Ajouter de la couleur à son graphique avec cmap= » »

#Ajouter des couleurs au nuage de points
plt.rcParams["figure.figsize"]=[16,9]
plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()), cmap="seismic") #Pour trouver d'autres couleurs : https://matplotlib.org/users/colormaps.html
plt.xlabel("Catégorie d'âge")
plt.ylabel("Somme totale des ventes")
plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre
plt.draw()

Ajouter une échelle à votre graphique avec plt.colorbar()

#Comment ajouter une échelle
#Ajouter des couleurs au nuage de points
plt.rcParams["figure.figsize"]=[16,9]
plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()), cmap="seismic")
plt.xlabel("Catégorie d'âge")
plt.ylabel("Somme totale des ventes")
plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre
plt.colorbar(orientation="horizontal")
plt.draw()

Exporter son graphique au format .png avec plt.savefig

plt.rcParams["figure.figsize"]=[16,9]
plt.scatter(achats_clients.keys(),achats_clients.values(), c=list(achats_clients.values()),marker='D', cmap="seismic",s=100)
plt.xlabel("Catégorie d'âge")
plt.ylabel("Somme totale des ventes")
plt.title("Somme totale des ventes effectuées par catégorie d'âge",y=1.1) #y= pour ajuster la hauteur du titre
plt.colorbar()
plt.savefig("mongraph.png", bbox_inches="tight") #pour enregistrer le graph dans de bonne proportion
plt.draw()

Créer un bar plot avec plt.bar

# Je vais cette fois chercher les nombre de ventes en fonction du sexe de l'acheteur
data = black_friday["Gender"].value_counts() #pour compter les valeurs uniques

# Je paramètre mon bar plot
plt.rcParams["figure.figsize"]=[16,9]
plt.bar(data.index,data, color=["blue","red"])
plt.xlabel("Sexe de l'acheteur")
plt.ylabel("Nombre d'acheteur")
plt.title("Nombre de ventes en fonction du sexe de l'acheteur")

# J'affiche mon graph
plt.draw()

Créer un box plot avec plt.boxplot

plt.rcParams["figure.figsize"]=[16,9]
plt.boxplot(black_friday["Purchase"])
plt.draw()

# Pour changer la valeur de l'abscisse 
plt.xticks([1],["Ventes"]) 
plt.draw()

Créer un pie chart avec plt.pie

# Je vais chercher la donnée 
data= black_friday["Age"].value_counts()

plt.rcParams["figure.figsize"]=[9,9]
plt.pie(data.values, labels=data.index, autopct='%1.1f%%',shadow=True, startangle=90)
plt.draw()

Afficher 2 ou plusieurs graphiques dans une même fenêtre avec plt.subplot()

plt.rcParams["figure.figsize"]=[16,9]
plt.subplot(211)
plt.bar(data.index,data, color=["blue","red"])
plt.xlabel("Sexe de l'acheteur")
plt.ylabel("Nombre d'acheteur")
plt.title("Coucou les amis")
plt.subplot(212)
plt.boxplot(black_friday["Purchase"])
plt.xticks([1],["Ventes"]) 
plt.tight_layout()
plt.draw

Créer un chart box avec seaborn

import seaborn as sns
sns.boxplot(x="Gender",y="Purchase", hue="Age", data=black_friday, palette="muted")
plt.legend(bbox_to_anchor=(1.05,1),loc=2, borderaxespad=0)
plt.draw()

Créer un chart bar avec seaborn

sns.countplot(x="Age",hue="Gender", data=black_friday, palette="Set1")

Créer un nuage de points avec seaborn

sns.catplot(x="Age",y="Purchase", hue="Gender", data = subset, kind="swarm")
plt.draw()
Basiques Python : Tableaux, listes, boucles, dictionnaires

Basiques Python : Tableaux, listes, boucles, dictionnaires

Vous souhaitez vous lancer sur Python ? Voici les basiques à connaître pour commencer sereinement.

Pour manipuler des matrices ou des tableaux nous utilisons NumPy. Numpy est une extension du langage de programmation Python, destinée à manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions mathématiques opérant sur ces tableaux.

Découvrez aussi : Manipuler des dataframe avec python

import numpy as np
#as est utilisé ici comme un alias pour gagner du temps

Les tableaux avec array()

# Créer un tableau bi dim avec array()
table = np.array([[1,2,3],[4,5,6],[7,8,9]])

# Modifier un sous tableau affecte le tableau pour éviter cela il faut faire un .copy
sub_table = table[0:5].copy()

# Obtenir la moyenne par colonne 
np.mean(df,axis=0)

# Obtenir la moyenne par ligne
np.mean(df,axis=1)

# Savoir de combien de dim est composé son tableau
df.ndim

# Savoir combien de lignes et colonnes
df.shape

# Concaténer 
np.concatenate(df, df1)

Connaître le type d’une variable avec type()

type(3) 
# la réponse sera "int" pour integer, autrement dit un chiffre entier

type(3.5)
# la réponse sera "float", autrement dit un chiffre à virgule

type("Bonjour")
# la réponse sera "str", autrement dit une chaîne de caractères. 

Concaténer avec « + »

df = "Hello" + "world"
print(df)

Obtenir de l’aide grâce à help()

help(print)

Créer une liste avec les []

my_list = [1,2,3,4,5]

Obtenir la moyenne d’une liste

numpy.mean(my_list)

Afficher un tableau, une liste ou un dataframe avec print()

print(my_list)

Ajouter un element à la fin d’une liste avec append()

my_list.append(2)

Ajouter un element dans une liste sur un index avec .insert()

my_list.insert(5,"nouvelle")
# Ici on ajouter l'element "nouvelle" après le 5ème element de la liste

Supprimer des éléments d’une liste avec del

del my_list[3]
# ici je souhaite supprimer le 3ème element de la liste

Obtenir des informations sur une liste

# Afficher la somme d'une liste
sum(my_list)

# Afficher la longueur d'une liste
len(my_list)

# Compter le nombre de fois que le chiffre 6 apparaît dans une liste
my_list.count(6)

# Changer l'ordre d'une liste
my_list.reverse()

# Obtenir la valeur min et max d'une liste
min(my_list)
max(my_list)

Les dictionnaires

#Je créé mon dictionnaire
mon_dico = {
"Marie" : 15,
"Robert" : 5,
"Pierre" : 12,
"Jean" : 10
}

#Afficher la valeur d'un élément
mon_dico["Marie"]

#Ajouter un élément 
mon_dico["Paul"]=9

#Supprimer un élement
del my_dico["Julie"]

#Afficher les éléments d'un dictionnaire
mon_dico.keys()

#Afficher les valeurs d'un dictionnaire
mon_dico.values()

Les conditions

if (var_1 == 2) and (var_3 == "Hello"):
    print("OK")
else :
        print("FAUX")
# and & or pour les conditions

Les boucles for

#Exemple boucle for #1
liste = [1,2,3,4,5]
for i in liste:
   print(i*2)

Exemple boucle for #2
for i in liste:
    var = i*2
    print("La multiplication de 2 * %d = %d"% (i,var))
    # %d pour afficher un chiffre ou un nombre entier 
    # %s pour afficher un variable texte
    # %f pour afficher des nombres à virgule

Les boucles while

#Boucle while = tant que
compteur = 0
while (compteur < 10):
    if liste[compteur] % 2 == 0:
        print("Mon compteur = %d" %(compteur))
        print("i = %d" % (liste[compteur]))
    compteur = compteur+1
Python & Dataframe : Les manipulations de base

Python & Dataframe : Les manipulations de base

Avant de démarrer, il est nécessaire de charger la librairie Pandas . Pandas est une librairie python qui permet de manipuler facilement des données à analyser.

import pandas as pd

Charger un dataframe avec read_csv ou read_table

df = pd.read_csv("my_dataframe.csv")
#ou
df = pd.read_table("mydataframe.xlxs", sep=";")

Créer un csv à partir d’un dataframe avec to.csv

my_dataframe.to_csv("mon_dataframe.csv")

Changer l’index d’un dataframe avec .set_index

my_dataframe.set_index("index_souhaité")

Filtrer son dataframe avec .loc et .iloc

# On affiche ici toutes les lignes ayant la valeur "value" ainsi que les colonnes associées
my_dataframe.loc["value",:)

# On affiche ici la colonne Category ainsi que les lignes associées
my_dataframe.loc[:,"Category"]

# On affiche toutes les lignes pour lesquelles la valeur de Rating est supérieure à 4.5
mydataframe.loc[mydataframe["Rating"]>4.5,:]

# On affiche toutes les lignes pour lesquelles la valeur de Category est égale à BUSINESS
mydataframe.loc[mydataframe["Category"]== "BUSINESS",:]

# On affiche toutes les lignes pour lesquelles la valeur de Category est égale à BUSINESS et pour lesquelles Rating est supérieur à 4
my_dataframe.loc[(my_dataframe["Category"]=="BUSINESS") &amp; (google_app_sans_na["Rating"]>4),:]

# On affiche toutes les lignes et les colonnes Category, Rating, Reviews, Size
my_dataframe.loc[:,["Category","Rating","Reviews","Size"]]

# On affiche toutes les lignes et les 4 premières colonnes
my_dataframe.iloc[:,0:4]

# On affiche toutes les lignes et les colonnes Category, Rating, Reviews, Size
my_dataframe.loc[:,["Category","Rating","Reviews","Size"]]

#Rappel [ligne,colonne] 
# ":" signifie "tout"

Ajouter une colonne

my_dataframe["ma_nouvelle_colonne"]= 1

Supprimer une colonne

my_dataframe.drop(["Category","Android"], axis=1)
#axis = 1 pour que la suppression s'effectue sur les colonnes 
#axis = 0 pour que la suppression s'effectue sur les lignes

Obtenir des informations sur son dataframe

# Combien de lignes et colonnes 
my_dataframe.shape

# Pour connaître les noms des colonnes 
my_dataframe.columns

# Pour afficher un extrait du dataframe
my_dataframe.head()

# Pour afficher la moyenne, min max
my_dataframe.describe()

# Pour savoir combien de NAN (Not available now) sont présents dans le data frame
my_dataframe.isna().sum()

# Pour connaître le type de données dans son dataframe
my_dataframe.dtypes

Supprimer les NAN avec .dropna

my_dataframe.dropna()

Trier des colonnes avec .sort_values

my_dataframe.sort_values(by="Rating", ascending=TRUE)
#J'effectue un tri croissant par Rating 

Transformer des valeurs en integer avec .apply

my_dataframe["Reviews"] = mydataframe["Reviews"].apply(lambda x: int(x))
SEO : trouver le bon équilibre pro/perso

SEO : trouver le bon équilibre pro/perso

SEO, un métier de passion

Ah…le référencement naturel…discipline souvent découverte sur les bancs de l’école qui avant de devenir un métier, devient une passion. Être bon SEO demande une certaine énergie pour rester en veille, discuter, rencontrer des homologues, rester au fait des dernières tendances.

Il est indispensable d’avoir une dynamique proactive pour se forcer à ne pas être dépassé. Les nouvelles tendances dictées par Google sont sans cesse mise à jour et les technologies avancent vite. Pas le choix, pour être efficace dans ce métier, il faut être prêt à passer du temps à se documenter et à tester ses trouvailles. Bien souvent, les SEO grignotent sur leur temps personnel pour combler ce besoin d’information.

Lire des articles le soir, apprendre un bout de code avant sa journée de travail ou encore mettre en place de nouvelles optimisations un Dimanche pluvieux. Le fameux dicton « on a rien sans rien » s’applique tout à fait à cette profession ! Oui mais voilà, être passionné c’est bien, mais il ne faut pas se brûler les ailes.

Prendre du temps pour s’aérer l’esprit et pour se ressourcer est tout aussi important. Au bout de quelques années, l’équilibre vie professionnelle et vie personnelle devient indispensable. Au risque de faire un burn out ou de se dégouter de son métier…

Astuces pour se dégager du temps perso

Se dégager du temps personnel n’est pas toujours une mince affaire. Il n’est pas rare que le métier de SEO soit exercé en télétravail : attention à ne pas tout mélanger ! Accordez-vous des pauses, prenez le temps de respirer dans votre journée. En dehors de vos horaires de travail, imposez vous une discipline rigoureuse pour rééquilibrer votre vie et tenir sur le long terme.

Faites la liste des tâches personnelles qui vous prennent trop de temps et que vous n’aimez pas. Par exemple, si vous détestez le ménage, faites appel à un professionnel du nettoyage ! Cela peut paraître bête, mais beaucoup n’osent pas se lancer. Tout n’est pas urgent, priorisez vos tâches et apprenez à prendre du temps pour vous.

Reprenez une activité sportive ou culturelle et engagez vous à ne pas vous défiler le soir où vous devez vous y rendre. Occupez-vous de vos proches et des personnes qui vous entoure. Faites fonctionner votre logique et votre organisation avec des activités que vous avez laissé de côté comme la cuisine ou la lecture.

En bref, faites des activités qui changent votre quotidien, font du bien à vous et vos proches, et se différencient du SEO ! 

Coronavirus : avec le confinement, les commerçants se tournent vers le web

Coronavirus : avec le confinement, les commerçants se tournent vers le web

Avec les mesures de confinement décrétées par le gouvernement, la majorité des commerçants, qu’ils soient bouchers, boulangers, coiffeurs ou artisans ont dû s’adapter à cette nouvelle situation. Ils ont à l’image de la Boucherie Bruat à Bordeaux, investi sur un site internet pour assurer la continuité du service. Ce qui permet d’ailleurs aux Français de passer leur commande directement sur internet et de profiter d’un service de livraison.

(suite…)