Transformer une colonne de type liste

Reconfigurer les données avec pandas

Maria Eugenia Inzaugarat

Data Scientist

Colonnes de type liste

DataFrame avec une colonne contenant des listes

Reconfigurer les données avec pandas

Transformer des colonnes de type liste

Flèche allant du DataFrame vers le DataFrame explosé

Reconfigurer les données avec pandas

La méthode .explode()

Flèche allant du DataFrame vers le DataFrame explosé

La méthode explode

Reconfigurer les données avec pandas

Exploser une colonne

cities
          city  country               zip_code
0  Los Angeles      USA  [90001, 90004, 90008]
1       Madrid    Spain  [28001, 28004, 28005]
2        Rabat  Morocco         [10010, 10170]
Reconfigurer les données avec pandas

Exploser une colonne

cities_explode = cities['zip_code'].explode()
cities_explode
0    90001
0    90004
0    90008
1    28001
1    28004
1    28005
2    10010
2    10170
Reconfigurer les données avec pandas

Exploser une colonne

cities[['city', 'country']]
Reconfigurer les données avec pandas

Exploser une colonne

cities[['city', 'country']].merge(cities_explode,                                  )
Reconfigurer les données avec pandas

Exploser une colonne

cities[['city', 'country']].merge(cities_explode, left_index=True, right_index=True)
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Reconfigurer les données avec pandas

Exploser une colonne dans le DataFrame

cities_explode = cities.explode('zip_code')
cities_explode
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Reconfigurer les données avec pandas

Exploser une colonne dans le DataFrame

cities_explode.reset_index(drop=True, inplace=True)
          city  country zip_code
0  Los Angeles      USA    90001
1  Los Angeles      USA    90004
2  Los Angeles      USA    90008
3       Madrid    Spain    28001
4       Madrid    Spain    28004
5       Madrid    Spain    28005
6        Rabat  Morocco    10010
7        Rabat  Morocco    10170
Reconfigurer les données avec pandas

Listes vides

cities_new
          city  country               zip_code
0  Los Angeles      USA  [90001, 90004, 90008]
1       Madrid    Spain                     []
2        Rabat  Morocco         [10010, 10170]
cities_new.explode('zip_code')
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain      NaN
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Reconfigurer les données avec pandas

Enchaîner les opérations

cities
          city  country             zip_code
0  Los Angeles      USA  90001, 90004, 90008
1       Madrid    Spain  28001, 28004, 28005
2        Rabat  Morocco         10010, 10170
Reconfigurer les données avec pandas

Enchaîner les opérations

cities['zip_code'].str.split(',', expand=True)
       0       1       2
0  90001   90004   90008
1  28001   28004   28005
2  10010   10170    None
Reconfigurer les données avec pandas

Enchaîner les opérations

cites.assign(zip_code=                                )
Reconfigurer les données avec pandas

Enchaîner les opérations

cites.assign(zip_code=cities['zip_code'].str.split(','))
Reconfigurer les données avec pandas

Enchaîner les opérations

cites.assign(zip_code=cities['zip_code'].str.split(',')).explode('zip_code')
          city  country zip_code
0  Los Angeles      USA    90001
0  Los Angeles      USA    90004
0  Los Angeles      USA    90008
1       Madrid    Spain    28001
1       Madrid    Spain    28004
1       Madrid    Spain    28005
2        Rabat  Morocco    10010
2        Rabat  Morocco    10170
Reconfigurer les données avec pandas

Passons à la pratique !

Reconfigurer les données avec pandas

Preparing Video For Download...