
Pandas contient des structures de données de haut niveau et des outils de manipulation conçus pour faciliter l’analyse des données en Python.
Pandas est construit au-dessus de NumPy, ce qui facilite son utilisation dans les applications centrées sur NumPy.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import DataFrame, Seri
Concept
Objet DataFrame : est un tableau bidimensionnel de données avec des index de colonnes et de lignes (comme une feuille de calcul). Les colonnes sont constituées d’objets Series.
Les objets Index de pandas sont chargés de contenir les étiquettes des axes et d’autres métadonnées (comme le ou les noms des axes). Tout tableau ou autre séquence d’étiquettes utilisé lors de la construction d’une série ou d’un cadre de données est converti en interne en un index :
Un DataFrame possède deux index :
Les objets d’index sont immuables et ne peuvent donc pas être modifiés par l’utilisateur :
Typiquement, l’index de colonne (df.columns) est une liste de noms de variables
Typiquement, l’index de ligne (df.index) peut être :
- des nombres entiers – pour les numéros de cas ou de ligne ;
- des chaînes de caractères – pour les noms de cas ; ou
- chaînes de caractères (noms de variables) ou (moins fréquemment) des entiers.
- DatetimeIndex ou PeriodIndex – pour les séries temporelles.
Objet série : un tableau ordonné, unidimensionnel de données avec une données avec un index. Toutes les données d’une série sont du même type. L’arithmétique des séries est vectorisée après avoir d’abord
aligner l’indice de la série pour chacun des opérandes.
s1 = Series(range(0,4)) -> 0, 1, 2, 3
s2 = Series(range(1,5)) -> 1, 2, 3, 4
s3 = s1 + s2 -> 1, 3, 5, 7
Instantiation d’un DataFrame (vide)
df = DataFrame()
Charger un DataFrame de fichier csv
df = pd.read_csv('file.csv')
df = pd.read_csv('file.csv', header=0, index_col=0, quotechar='"', sep=':', na_values = ['na', '-', '.', ''])
Charger à partir d’Excel
# Each Excel sheet in a Python dictionary
workbook = pd.ExcelFile('file.xlsx')
d = {}
for sheet_name in workbook.sheet_names:
df = workbook.parse(sheet_name)
d[sheet_name] = df
Charger à partir de MySQL
import pymysql
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://'
+'USER:PASSWORD@HOST/DATABASE')
df = pd.read_sql_table('table', engine)
Assembler des Series en DataFrame
# Example 1 ...
s1 = Series(range(6))
s2 = s1 * s1
s2.index = s2.index + 2 # misalign indexes
df = pd.concat([s1, s2], axis=1)
# Example 2 ...
s3 = Series({'Tom':1, 'Dick':4, 'Har':9})
s4 = Series({'Tom':3, 'Dick':2, 'Mar':5})
df = pd.concat({'A':s3, 'B':s4 }, axis=1)
Note: 1st method has in integer column labels
Note: 2nd method does not guarantee col order
Laisser un commentaire