obtenir les données
import pyensae file = pyensae.download_data("velib_vanves.zip", website = "xd") print (file) # affiche ['velib_vanves.txt']
aperçu des données
address available_bike_stands available_bikes banking bike_stands bonus contract_name last_update lat lng name number status idr 112 RUE VERCINGETORIX - 75014 PARIS 65 2 0 67 0 Paris 15/07/2013 15:00 48,83425925 2,313391647 14029 - GERGOVIE VERCINGETORIX 14029 OPEN 669 112 RUE VERCINGETORIX - 75014 PARIS 65 2 0 67 0 Paris 15/07/2013 15:05 48,83425925 2,313391647 14029 - GERGOVIE VERCINGETORIX 14029 OPEN 1898 112 RUE VERCINGETORIX - 75014 PARIS 66 1 0 67 0 Paris 15/07/2013 15:10 48,83425925 2,313391647 14029 - GERGOVIE VERCINGETORIX 14029 OPEN 3127 112 RUE VERCINGETORIX - 75014 PARIS 66 1 0 67 0 Paris 15/07/2013 15:15 48,83425925 2,313391647 ,.,
lecture des données avec pandas
import pandas df = pandas.read_table(file, header = False, sep = "\t", decimal = ",")
accéder ou modifier une place de données
une_colonne = df.ix[:,"available_bikes"])
accéder ou modifier une place de données
mx_col = df["available_bikes"].max() # maximum d'une colonne mx_col = df.ix[:,"available_bikes"].max() # même maximum, autre écriture mx = df.max() # maximum sur toutes les colonnes
décrire un dataframe
df.describe()
nombre de ligne d'un dataframe
len(df)
sous-ensemble d'un dataframe vérifiant une condition
zero = df [ df["available_bikes"]==0 ]
ajouter deux colonnes
add = df["available_bikes"] + df["available_bike_stands"]
visualisation des données avec pandas
df = df.set_index("last_update") # on identifie chaque ligne avec une date import matplotlib.pyplot as plt # module matplotblig ts = df.ix[:,"available_bikes"] # on extrait la série à dessiner ts.plot() # on dessine plt.show() # on affiche le dessin
sélection de deux colonnes
df2 = df.ix[:, ["last_update","available_bikes"]]
opérations avec les objets datetime
import datetime d = datetime.datetime.now() print (d.weekday()) print (d.strftime("%H:%M")) print (d.isocalendar())
exercice 1 : matrix de numpy
mat = numpy.matrix ( [ 0.0, 0.1, 0.3, 0.4 ] ).transpose() # crée une matrice 4x1 print (mat [ 1:-1,:] ) # enlève la première et la dernière ligne mat = mat + mat * 2.4 # fait des additions avec cette matrice
exercice 2 : conversion d'un DataFrame sous Excel
piv.to_excel("pivot.xlsx") # cela nécessite le module openpyxl # si celui n'est pas installé, il faut enregistré le fichier au format texte piv.to_csv("pivot.txt", sep="\t")
exercice 2 : ajout de valeur NaN
piv.ix['4-16:00':,31] = numpy.NaN # vous pouvez vérifier que sous Excel (en utilisant les lignes précédentes), # les cellules sont vides.
exercice 2 : autres fonctionnalités utiles
# on crée une matrice de type numpy.array mx = numpy.array ( [ [ 10.0, 1.0], [2.0, 3.] ] ) # on calcule la moyenne de la première colonne print ( numpy.average( mx[:,0] )) # on remplace la première valeur par NaN mx[0,0] = numpy.NaN # on calcule la moyenne de la première colonne sans les valeurs NaN print ( numpy.average( mx[~numpy.isnan(mx[:,0]),0]) ) # on utilise la fonction isnan car numpy.NaN != numpy.NaN est vrai print ( numpy.NaN != numpy.NaN ) # aussi surprenant que cela soit # on parcourt toutes les dates de la matrice obtenue après pivot : for i,k in enumerate(piv.index) : print (i,k)