stack(): pour énumérer une liste

TOC

stack(): pour énumérer une liste#

import pandas as pd
from head import head
# pour information seulement (on a des .csv maintenant)
# pour lire les excel au format .xlsx il faut importer ceci

# !pip install openpyxl

on a trois tables comme ceci

df1 = pd.read_csv('data/bornes.csv', sep=';')
df2 = pd.read_csv('data/bornes2.csv', sep=';')
df3 = pd.read_csv('data/bornes3.csv', sep=';')
df1
ville bornes
0 Paris [201, 202, 203]
1 Marseille [301, 310, 350]
df2
borne op_id
0 201 10
1 202 30
2 203 20
3 301 10
4 310 20
5 350 30
df3
op_id op_name
0 10 Tesla
1 20 BP Pulse
2 30 City EV

on veut transformer cela pour aboutir à ceci; une ligne par borne

ville

borne

op_name

Paris

201

Tesla

Paris

202

City EV

il s’agit donc de démêler l’écheveau pour fabriquer une table qui a 6 lignes, et pour chaque ligne l’opérateur de la borne

indices#

  • on a vu dans le cours que sur un objet Series on pouvait avoir besoin occasionnellement d’utiliser l’attribut str

  • ici on a envie de passer par un objet liste; notamment je vous rappelle

    • la méthode replace() sur les chaines de caractères

    • la méthode split() sur les chaines de caractères

  • une fois que vous êtes arrivés à mettre une liste dans une cellule d’une Series, il peut être intéressant de remplacer ce contenu par .. un objet Series

  • vous pourrez ensuite invoquer la méthode .stack() sur la Series englobante


# à vous de jouer