Een pandas dataframe ongedaan maken (met voorbeeld)
In panda’s kunt u de functie melt() gebruiken om een DataFrame ongedaan te maken, waardoor het wordt geconverteerd van een breed formaat naar een lang formaat .
Deze functie gebruikt de volgende basissyntaxis:
df_unpivot = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])
Goud:
- id_vars : De kolommen die als ID’s moeten worden gebruikt
- value_vars : Kolommen waarvan de draaiing moet worden opgeheven
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: het draaien van een Pandas DataFrame ongedaan maken
Stel dat we de volgende panda’s DataFrame hebben:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], ' points ': [18, 22, 19, 14, 14], ' assists ': [5, 7, 7, 9, 12], ' rebounds ': [11, 8, 10, 6, 6]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6
We kunnen de volgende syntaxis gebruiken om het DataFrame te ‘unpivoten’:
#unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])
#view updated DataFrame
print (df_unpivot)
team variable value
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6
We gebruikten de teamkolom als identificatiekolom en kozen ervoor om de kolommen voor punten, assists en rebounds niet te roteren.
Het resultaat is een DataFrame met een lang formaat.
Houd er rekening mee dat we ook de argumenten var_name en value_name kunnen gebruiken om de kolomnamen in het niet-geroteerde DataFrame op te geven:
#unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
var_name=' metric ', value_name=' amount ')
#view updated DataFrame
print (df_unpivot)
team metric amount
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6
Houd er rekening mee dat de nieuwe kolommen nu Metric en Amount heten.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in Python uitvoert:
Rijen toevoegen aan een Pandas DataFrame
Kolommen toevoegen aan een Pandas DataFrame
Hoe u het voorkomen van specifieke waarden in Pandas DataFrame kunt tellen