Python Formation
Python Formation
Majdoub
PLAN
1- Introduction a Python
2- Premiers pas: Données et variables (typage, affichage, opérateurs), les
principaux types de données, les instructions conditionnelles, les instructions
répétitives, importation des librairies.
3- Les fonctions
4- Les structures de données
5- Manipulation des fichiers (importation, lecture, écriture)
6- Création et manipulation des bases de données avec Python (module MongoDB)
7-Web Scraping
8- Nettoyage de données
9- Visualisation de données
10- Mini Projet de validation
INTRODUCTION A PYTHON
C’est un langage de programmation,
Concu par Guido Van Rossum
Sa première publication: en 1991
USE CASE
* Data Science
* Gaming development
* Web development
* Desktop development
* Business Intelligence Apps
LES PROJETS BASÉS SUR
PYTHON
INSTALLATION
PREMIERS PAS: DONNÉES &
VARIABLES
print 3 in True
chose #
CODE SOURCE : LES LISTES, LE
DÉCOUPAGE "SLICING"
•Un tuple s'utilise comme une liste, mais son parcours est plus
rapide
•Généralement on utilise le tuple pour définir des constantes
•Un tuple n'est pas modifiable
CODE SOURCE : LES
DICTIONNAIRES
dico['un'] = 'one'
dico['deux'] = 'two'
dico['trois'] = 'three'
print dico # {'un':'one', 'trois':'three', 'deux':'two'}
print dico['un'] # 'one'
del dico['un']
print dico # {'trois':'three', 'deux':'two'}
dico['quatre'] = 'four'
print dico # {'quatre': 'four', 'trois': 'three',
'deux': 'two'}
CODE SOURCE : LES DICTIONNAIRES,
LES MÉTHODES
x = set ('abcd')
y = set('bdx')
•Les
opérations :
if x < 0 :
print "x est négatif"
elif x % 2 :
print "x est positif et pair"
else :
print "x n'est ni négatif ni pair"
# pour un booléen
if x : # 'if s is True' ou 'if x ==
True'
CODE SOURCE : WHILE
… [ELSE]
Répéter du code
cpt = 0
while x > 0 :
x = x // 2 # division avec troncature
cpt += 1
print "l'approximation de log2(x) est %d" % (cpt)
for c in 'Hello' :
print c, # H e l l o
for x in xrange(5) :
print x, # 0 1 2 3 4
QUIZ TIME
http://www.quiz-maker.com/Q7YWWXWOS
EXERCICE
1/ On vérifie la note de l’éléve si elle est supérieure a 10 donc on
affiche ‘Admis’ sinon on affiche ‘redouble’,
2/ On déclare une liste de prix des maisons, si le prix est supérieur
a 500 000 dt on affiche ‘Expensive ’, sinon on affiche ‘Cheap’.
3/ On déclare une liste d'âge, si l'âge est supérieur a 18 ans, on
affiche ‘majeur’ si l'âge = 18 ans on affiche ‘vous venez juste
d’atteindre la majorité’, sinon on affiche ‘mineur’.
4/ Si le prix de la maison > 500 000dt, on rajoute la TVA au prix =
5000 dt sinon on rajoute TVA = 1000 dt. Par exemple: prix de la
maison = 600 000 + TVA (5000) => le prix final = 605 000 dt.
LES FONCTIONS
* Les fonctions prédéfinis
* Les fonctions
LES FONCTIONS PRÉDÉFINIS
EN PYTHON
Python possède une série de fonctions prédéfinies afin de réaliser les fonctions les plus
courantes.
Par exemple :
• print()
• input()
• min(), max()
• sorted()
• len()
• range()
• ...
Toutes ces fonctions peuvent êtres appelées directement depuis Python sans import de modules
préalables. Elles sont chargées au démarrage de Python.
IMPORTATION DES
FONCTIONS
from math import sqrt, sin
def nomDeLaFontion(<paramétres>) :
<blocInstructions>
def carre(x) :
return x*x
f1 = open("monFichier", 'w')
s1 = 'foo'
f1.write(s) # on écrit la chaîne s1 dans f1
l1 = ["x", "y", "z"]
f1.writlines(l1) # on écrit les chaînes de l1
dans f1
f1 = open("monFichier", 'r')
s = f1.read() # lit tous le fichier
s = f1.read(n) # lit au plus n octets
s = f1.readline() # lit la ligne
suivante
s = f1.readlines() # lit toutes les lignes sous forme d'une
liste
# lecture et affichage des lignes d'un fichier
for s in f1 :
print s
• Exemple 1:
import os
os.remove("demofile.txt")
• Exemple 2:
import os
if os.path.exists("demofile.txt"):
os.remove("demofile.txt")
else:
print("The file does not exist")
LES MODULES
CODE SOURCE : LES
MODULES
•Un module est un fichier indépendant qui permet de créer des
bibliothèques de fonctions ou de classes
import wx
print(arr)
print(type(arr))
PANDAS
*1/ Exemple:
import pandas as pd
df = pd.read_csv('data.csv')
print(df.to_string())
*2/ Exemple:
import pandas as pd
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
print(df)
MATPLOTLIB
import matplotlib.pyplot as p import matplotlib.pyplot as p
lt lt
import numpy as np import numpy as np
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
//Affichage de la liste des BD:
print(myclient.list_database_names())
//Vérifier si ma BD existe !
dblist = myclient.list_database_names()
if "mydatabase" in dblist:
print("The database exists.")
CRÉATION D’UNE
COLLECTION
A collection in MongoDB is the same as a table in SQL databases.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
//Afficher la liste des collections
print(mydb.list_collection_names())
//Vérifier si ma collection existe
collist = mydb.list_collection_names()
if "customers" in collist:
print("The collection exists.")
INSERT INTO COLLECTION
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.insert_one(mydict)
INSERT MULTIPLE
DOCUMENTS
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"},
{ "name": "Susan", "address": "One way 98"},
{ "name": "Vicky", "address": "Yellow Garden 2"},
{ "name": "Ben", "address": "Park Lane 38"},
{ "name": "William", "address": "Central st 954"},
{ "name": "Chuck", "address": "Main Road 989"},
{ "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
FIND ALL
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
FIND ONLY SOME FIELDS
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},
{ "_id": 0, "name": 1, "address": 1 }):
print(x)
FILTER THE RESULT
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
DELETE DOCUMENTS
//Delete the documents with the adress « Mountain 21 »
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mycol.delete_one(myquery)
DELETE ALL DOCUMENTS WERE THE ADDRESS
STARTS WITH THE LETTER S:
import pymongo
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.delete_many(myquery)
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.delete_many({})
myclient =
pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mycol.drop()
WEB SCRAPING
C’EST QUOI WEB
SCRAPING ?
La collecte automatisée de données à partir d’Internet est presque
aussi ancienne qu’Internet lui-même. Bien que le web scraping ne soit
pas un terme nouveau, dans les années passées, la pratique a été
plus communément appelé capture d’écran, exploration de données,
collecte de sites Web ou similaire Variations.
En théorie, le web scraping est la pratique consistant à collecter des
données depuis différents sources de données. C’est le plus souvent
accompli en écrivant un programme automatisé qui interroge un
serveur Web, demande des données (généralement sous forme de
fichiers HTML et autres qui composent des pages Web), puis analyse
ces données pour extraire les informations nécessaires.
En pratique, le web scraping englobe une grande variété de
technologies et des techniques de programmation.
WEB SCRAPING
POURQUOI WEB SCRAPING ?
Le besoin d'extraire des données du site Web augmente. Lorsque
nous menons des projets liés aux données tels que la surveillance
des prix, l'analyse commerciale ou l'agrégateur de nouvelles, nous
aurions toujours besoin d'enregistrer les données du site Web.
Cependant, copier et coller des données ligne par ligne est
obsolète.
USE CASES
1. Lead generation for marketing
2. Comparateur de prix
3. E-commerce
4. Data analysis
5. Recherche académique
SOURCE DE DONNÉES
ÉTAPES
TOP TOOLS & LIBRAIRIES
1. BeautifulSoup
2. Requests
3. Urlib
4. Scrapy
5. Selenium
6. Mechanize
SYNTAXE
EXERCICE
1. Scraping du site web:
Tunisie Annonce :: Immobilier Tunisie TN - petites annonces gratuite
s location vente terrain voiture auto moto emploi immobilier BIZ (tu
nisie-annonce.com
)
2. Scraping text from image
3. Scraping data from PDF file
4. Scraping data from indeed.com
5. Scraping data from Facebook groupes & pages
NETTOYAGE DE DONNÉES
C’EST QUOI ?
Le Data Cleaning (nettoyage de données) est l’étape la plus
importante avant d’analyser ou modéliser des données mais elle
peut-être très fastidieuse.
les données qui ont été collectées pour analyse sont nettoyées pour
en extraire les informations pertinentes. Le processus de suppression
du type de données incorrectes, incomplètes ou en double et
susceptibles d'affecter les résultats finaux de l'analyse est appelé
nettoyage des données.