Reputation: 25
i have this data of pokemon and i would like do denormalize this dataframe:
#numéro #nom #type1 #type2 #poids
1 bulbizard plante NaN 69
2 ivysaur poison plante 139
To:
#numéro #nom #type #poids
1 bulbizard plante 69
2 ivysaur poison 139
2 ivysaur plante 139
Upvotes: 1
Views: 796
Reputation: 402982
Use pd.lreshape
(undocumented):
pd.lreshape(df, {'#type': ['#type1', '#type2']})
#nom #numéro #poids #type
0 bulbizard 1 69 plante
1 ivysaur 2 139 poison
2 ivysaur 2 139 plante
You can also use pd.wide_to_long
:
(pd.wide_to_long(df, stubnames=['#type'], i=['#numéro', ], j='')
.dropna(subset=['#type'])
.reset_index(level=0)
.reset_index(drop=True))
#numéro #nom #poids #type
0 1 bulbizard 69 plante
1 2 ivysaur 139 poison
2 2 ivysaur 139 plante
Upvotes: 3