2 votes

Déplacement de tableaux de cellules vers des en-têtes de colonnes et des valeurs de lignes

Avec le code ci-dessous :

import pandas as pd
import numpy as np
data = {'Brand': [['Honda', 'Toyota'],['Toyota', 'Honda', 'Ford'],['Ford','Toyota']],
        'Price': [[10,12],[15,18,11],[11,12]]}
df = pd.DataFrame(data)
df

J'ai le cadre de données suivant :

    Brand                   Price
0   [Honda, Toyota]         [10, 12]
1   [Toyota, Honda, Ford]   [15, 18, 11]
2   [Ford, Toyota]          [11, 12]

Je voudrais le transformer, en faisant Marque entre mes noms de colonnes et Prix les valeurs des cellules, pour ressembler à ceci :

    Honda   Toyota  Ford
0   10      12      NaN
1   18      15      11
2   NaN     12      11

Malheureusement, l'ordre des entrées dans le tableau et leur apparence varient sur plus de 200 000 enregistrements. Est-il possible de le faire ?

4voto

W-B Points 94428

Vérifiez avec

s = pd.DataFrame([dict(zip(x, y)) for x , y in zip(df['Brand'], df['Price'])])
Out[403]: 
   Honda  Toyota  Ford
0   10.0      12   NaN
1   18.0      15  11.0
2    NaN      12  11.0

4voto

Scott Boston Points 48995

Essayez :

df.apply(pd.Series.explode).set_index('Brand', append=True)['Price'].unstack()

Sortie :

Brand Ford Honda Toyota
0      NaN    10     12
1       11    18     15
2       11   NaN     12

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X