Cursus
Vaak bevat een DataFrame kolommen die niet nuttig zijn voor je analyse. Zulke kolommen kun je uit het DataFrame verwijderen, zodat je je makkelijker kunt richten op de overgebleven kolommen.
Je kunt kolommen verwijderen door de labels en de bijbehorende as te specificeren, of door direct index- of kolomnamen op te geven. Bij een multi-index kun je labels op verschillende niveaus verwijderen door het level te specificeren.
.drop()-methode
Laten we de aantallen missende waarden vergelijken met de shape van het dataframe. Je ziet dat de kolom county_name evenveel missende waarden bevat als rijen, wat betekent dat deze kolom alleen missende waarden bevat.
ri.isnull().sum()
state 0
stop_date 0
stop_time 0
county_name 91741
driver_gender 5205
driver_race 5202
...
ri.shape
91741, 15
Omdat deze kolom geen nuttige informatie bevat, kun je haar verwijderen met de methode .drop().
Naast het opgeven van de kolomnaam moet je aangeven dat je van de kolomas verwijdert en dat je de bewerking in place wilt uitvoeren, zodat je geen toewijzing hoeft te doen zoals hieronder getoond:
ri.drop('county_name',
axis='columns', inplace=True)
.dropna()-methode
De methode .dropna() is een fijne manier om rijen te verwijderen op basis van de aanwezigheid van missende waarden in die rij.
Gebruikmakend van de dataset hierboven: stel dat de kolommen stop_date en stop_time cruciaal zijn voor onze analyse, en dat een rij zonder die gegevens dus nutteloos voor ons is.
ri.head()
state stop_date stop_time driver_gender driver_race
0 RI 2005-01-04 12:55 M White
1 RI 2005-01-23 23:15 M White
2 RI 2005-02-17 04:15 M White
3 RI 2005-02-20 17:15 M White
4 RI 2005-02-24 01:20 F White
We kunnen pandas opdracht geven om alle rijen te verwijderen die een missende waarde hebben in ofwel de kolom stop_date of stop_time. Doordat we een subset specificeren, kijkt de methode .dropna() alleen naar deze twee kolommen om te bepalen welke rijen moeten worden verwijderd.
ri.dropna(subset=['stop_date', 'stop_time'], inplace=True)
Interactief voorbeeld van kolommen verwijderen
In dit voorbeeld verwijder je de kolom county_name omdat deze alleen missende waarden bevat, en verwijder je de kolom state omdat alle verkeersstops in één staat plaatsvonden (Rhode Island). Deze kolommen kunnen dus weg omdat ze geen nuttige informatie bevatten. Het aantal missende waarden per kolom is alvast voor je naar de console geprint.
- Bekijk de
.shapevan het DataFrame om het aantal rijen en kolommen te achterhalen. - Verwijder zowel de kolommen
county_namealsstatedoor de kolomnamen als lijst van strings door te geven aan de methode.drop(). - Bekijk de
.shapeopnieuw om te verifiëren dat er nu twee kolommen minder zijn.
# Examine the shape of the DataFrame
print(ri.shape)
# Drop the 'county_name' and 'state' columns
ri.drop(['county_name', 'state'], axis='columns', inplace=True)
# Examine the shape of the DataFrame (again)
print(ri.shape)
Als je de bovenstaande code uitvoert, krijg je het volgende resultaat:
(91741, 15)
(91741, 13)
Wil je meer leren over het verwijderen van kolommen in pandas? Bekijk dan deze video uit onze cursus Introduction to Data Visualization with ggplot2.
Deze content is afkomstig uit DataCamp’s cursus Introduction to Data Visualization with ggplot2 van Kevin Markham.
Bekijk ook onze Pandas Add Column Tutorial.
