XD blog

blog page

pandas, python


2013-09-14 Quelques astuces avec pandas python

Ce n'est pas toujours évident d'apprendre à manipuler un nouveau module. On commence toujours par des trucs simples qu'on peine toujours à faire même après quelques requêtes sur un moteur de recherche. Bref, voici quelques raccourcis (on suppose que df est un DataFrame). Je recommande un rapide coup d'oeil à 10 Minutes to Pandas (et celle-ci aussi : Essential Basic Functionality).

Parcourir tous les éléments (version lente) :

self.header = ['index'] + [ _ for _ in df.columns ]
self.values = []
for i in range(len(df) :
    row = [ df.index[i] ] + [ df.ix[i,j] for j in range(len(self.header)) ]
    self.values.append(row)

Parcourir tous les éléments (version plus rapide) :

self.header = ['index'] + [ _ for _ in df.columns ]
self.values = []
for i,row in enumerate(df.values) :
    row = [ df.index[i] ] + [ x for x in row ]
    self.values.append(row)

Créer un DataFrame à partir d'une matrice (liste de listes) :

df = pandas.DataFrame(liste_de_listes, columns = list_nom_colonnes)

Renommer les colonnes :

df.columns = [x.lower() for x in df.columns]

Ajouter une colonne à un DataFrame (colonne construite à partir des autres) :

col = df.apply ( lambda row : (row["Open"] + row["Close"]) / 2, axis = 1 ) 
df ["new_column"] = col

Sélectionner des lignes selon une condition portant sur plusieurs colonnes :

cond = df.apply ( lambda row : row["Open"] > row["Close"], axis = 1 )
sub = df [cond]


<-- -->

Xavier Dupré