Loading...

Python Cheat Sheet - Méthodes de Data Science avec Pandas

Feuille de méthodes de traitement des données en langage Python 3 avec la librairie Pandas. Cheatsheet Python3 sur le traitement des données en DataScience
Python Cheat Sheet - Méthodes de Data Science avec Pandas

Python Cheat Sheet - Méthodes de Data Science avec Pandas

Catégorie : DATASCIENCE

Pour faciliter les tâches en Data Science et surtout Data Préparation, ce cheatsheet sur le langage Python et la librairie Pandas regroupe différentes fonctions et méthodes permettant de traiter les données.

Installation

Pour utiliser la librairie Pandas, il est necessaire de l'installer au préalable avec la commande PIP

pip install pandas
                        

Dans le cas d'une utilisation de python à travers un proxy, il est necessaire d'ajouter l'option suivante :

pip install pandas --proxy http://votreproxy.extention:port
                        

Par convention, lors de l'import, on déclarera l'alias "pd" pour la librairie Pandas.

import pandas as pd
                        

Syntaxe

Pandas utilise des Dataframe qui sont des tableaux (tables en SQL). Par convention, un DataFrame est socké dans une variable nommée "df".

df = pd.DataFrame(
  {"First" : [245 , 247, 42],
  "Last" : ['Mark', 'Jacob', 'Larry'],
  "Handle" : ['@mdo', '@fat', '@twitter']},
  index = [1, 2, 3])
                        

Ce code crée un tableau tel que :

# First Last Handle
1 245 Mark @mdo
2 247 Jacob @fat
3 42 Larry @twitter

Les lignes

Ajouter une nouvelle ligne à un dataframe existant

df = df.append({
  'First': 4, 
  'Last': 'Pierre', 
  'Handle': '@new'
}, ignore_index=True)
                          

Supprimer une ligne d'un dataframe existant par rapport à l'index

df = df.drop([3])
                          

Supprimer des lignes d'un dataframe existant par rapport à l'index

df = df.drop([0,2])
                          

Itérer sur les lignes d'un dataframe

for index, row in df.iterrows():
    print(row['c1'], row['c2'])
                          

Les fichiers I/O

Lire et écrire un csv

df = pd.read_csv('cheminFichier.csv', encoding="utf-8", sep=';', header=None)
df.to_csv('cheminFichierSortie.csv', encoding="utf-8", sep=';', header=None, index=False)                              
                          

Lire et écrire un fichier Excel (vous aurez besoin de la librairie xlwt pour écrire un fichier XLS)

df = pd.read_excel('cheminFichier.xls', sheetname=0, index_col=0)     
# pip install xlwt
df.to_excel('cheminFichier.xls', sheet_name='nomFeuille', index=False)                              
                          

Itérer sur plusieurs feuilles Excel

xlsx = pd.ExcelFile(excel_file)
sheets_value = []
for sheet in xlsx.sheet_names:
    sheets_value.append(xlsx.parse(sheet))
    df = pd.concat(sheets_value)                             
                          

Filtrer un Dataframe

Filtrer les lignes par rapport au contenu d'une colonne (équivalent de la clause where en SQL)

# opérateurs classiques
df = df[df['nomColonne'] == 1234]
df = df[df['nomColonne'] >= 1234]
df = df[df['nomColonne'] <= 1234]
df = df[df['nomColonne'] > 1234]
df = df[df['nomColonne'] < 1234]
# négation avec la tilde
df = df[~df['nomColonne'] == 1234] 
# conditions multiples    
df = df[df['nomColonne'] == 1234 | df['nomColonne'] == 4321]      
df = df[df['nomColonne'] == 1234 & df['nomColonne'] == 4321]        
                            

Filtres textes avancés

df = df[df['nomColonne'].str.contains('texte')]
                            

Modifier un Dataframe

Réaliser un substring d'une colonne vers une nouvelle colonne

df['nouvelle_colonne'] = df.ancienne_colonne.str.slice(0,4)       
                            

Renommer des colonnes

df = df.rename(columns={'old_name_1': 'new_name_1', 'old_name_2': 'new_name_2'}, inplace=True)
                            

Effectuer un select SQL vers un Dataframe Pandas

PostgreSQL vers un Dataframe Pandas

import psycopg2 as pg
import pandas as pd 

conn = pg.connect("host=ADRESSE_HOST dbname=NOM_BASE user=UTILISATEUR password=MOT_DE_PASSE")
df = pd.read_sql_query('REQUETE SQL', conn)