Maison > Article > développement back-end > Comment transformer des données larges en format long dans Pandas ?
Remodelage des données larges au format long dans Pandas
Dans le domaine de la manipulation des données, le remodelage des données du format large au format long apparaît souvent comme une nécessité. Considérez le dataframe pandas suivant :
AA | BB | CC | |
---|---|---|---|
05/03 | 1 | 2 | 3 |
06/03 | 4 | 5 | 6 |
07/03 | 7 | 8 | 9 |
08/03 | 5 | 7 | 1 |
Pour le transformer dans le format long souhaité :
| AA | 05/03 | 1 |
| AA | 06/03 | 4 |
| AA | 07/03 | 7 |
| AA | 08/03 | 5 |
| BB | 05/03 | 2 |
| BB | 06/03 | 5 |
| BB | 07/03 | 8 |
| BB | 08/03 | 7 |
| CC | 05/03 | 3 |
| CC | 06/03 | 6 |
| CC | 07/03 | 9 |
| CC | 08/03 | 1 |
Nous utilisons la fonction pandas.melt ou pandas.DataFrame.melt, qui transforme élégamment les données larges en format long.
import pandas as pd df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }).set_index('date') df = df.reset_index() pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])
Alternativement, on peut omettre l'étape reset_index en appelant melt with ignore_index=False :
dfm = df.melt(ignore_index=False).reset_index()
Résultat du format long souhaité :
date | variable | value | |
---|---|---|---|
0 | 05/03 | AA | 1 |
1 | 06/03 | AA | 4 |
2 | 07/03 | AA | 7 |
3 | 08/03 | AA | 5 |
4 | 05/03 | BB | 2 |
5 | 06/03 | BB | 5 |
6 | 07/03 | BB | 8 |
7 | 08/03 | BB | 7 |
8 | 05/03 | CC | 3 |
9 | 06/03 | CC | 6 |
10 | 07/03 | CC | 9 |
11 | 08/03 | CC | 1 |
Cette transformation permet une fusion efficace avec d'autres dataframes en fonction des dates partagées et des noms de colonnes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!