Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Pandas is een veelgebruikte Python-bibliotheek voor gegevensmanipulatie en -analyse. Een essentiële functionaliteit die panda's u kunnen bieden, is de mogelijkheid om de structuur van een dataset te wijzigen. Met name het laten vallen van indexen in een DataFrame is een cruciale bewerking bij het werken met datasets. Hiermee kunt u ongewenste rijen of kolommen uit de gegevens verwijderen.
Om een index met panda's te verwijderen, kunt u de methoden .drop() en .reset_index() gebruiken. Met de methode .drop() kunt u specifieke rijen of kolommen verwijderen. Aan de andere kant kunt u met de methode .reset_index() de index verwijderen en terugzetten naar de standaard RangeIndex.
In dit artikel bespreken we het gebruik van deze methoden om indexen in panda's DataFrames te verwijderen. We zullen verschillende voorbeelden doornemen om te demonstreren hoe de structuur van een dataset effectief kan worden gemanipuleerd om aan verschillende analytische behoeften te voldoen. Door deze voorbeelden krijgt u een beter begrip van hoe de pandabibliotheek kan worden gebruikt voor gegevensmanipulatie.
Laten we erop ingaan!
Inhoudsopgave
Panda's Drop Index begrijpen
Voordat we ingaan op het laten vallen van indexen met panda's, is het erg belangrijk dat u begrijpt wat een panda's DataFrame is. Verder moet u ook bekend zijn met het concept van indexen en kolommen in een Panda's DataFrame.
In deze sectie behandelen we de basisprincipes van een Panda DataFrame, index en kolommen. We zullen dan kijken naar een voorbeeld van het laten vallen van een index met behulp van panda's.
1. Wat is een Panda's Dataframe?
Pandas is een open-source Python-bibliotheek die krachtige tools voor gegevensmanipulatie en -analyse biedt. Een van de belangrijkste datastructuren is de DataFrame .
Een pandas DataFrame is een tweedimensionale datastructuur met gelabelde assen (rijen en kolommen). U kunt een DataFrame zien als een Pythonic-objectrepresentatie van een SQL-tabel of een Excel-spreadsheet.
Het volgende is een typische panda's DataFrame:
2. Wat zijn indexen en kolommen?
In een pandas DataFrame dient de Index als 'adres' voor datapunten. Het biedt een manier om toegang te krijgen tot gegevens en deze te organiseren in het DataFrame. Het kan de standaard reeks gehele getallen zijn die door panda's is toegewezen of een door de gebruiker gedefinieerde aangepaste index.
Kolommen zijn de variabelen die verschillende soorten gegevens hosten in het DataFrame. Elke kolom is in wezen een reeks gegevens. Het kan verschillende gegevenstypen bevatten, zoals gehele getallen, floats of strings. Het label van de kolom, gewoonlijk de kolomnaam genoemd, identificeert deze gegevensreeks.
In een panda's DataFrame omvat gegevensmanipulatie vaak het werken met de rijlabels (indices) of kolomlabels.
Enkele veelvoorkomende bewerkingen die u kunt uitvoeren met een DataFrame met meerdere indexen, zijn onder meer het selecteren, hernoemen en neerzetten van rijen of kolommen op basis van hun labels.
3. Indexkolom laten vallen met panda's
In panda's kunt u de DataFrame-methode reset_index() gebruiken om de index te verwijderen en opnieuw in te stellen.
Stel dat we het volgende DataFrame hebben:
Om de indexkolom te verwijderen, kunnen we de volgende code gebruiken:
df.reset_index(drop=True)
Na het uitvoeren van deze code krijgt u het onderstaande voorbeeld:
In de uitvoer kunt u zien dat de index is verwijderd en vervangen door de oorspronkelijke indexwaarden.
U kunt ook de drop- methode in panda's gebruiken om opgegeven labels uit rijen of kolommen te verwijderen.
De syntaxis voor deze methode is:
DataFrame.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
Hieronder volgen de belangrijkste parameters van de drop- methode:
labels : De labels die moeten worden verwijderd. Dit kunnen rijen of kolommen zijn, afhankelijk van de asparameter .
as : Bepaalt of er uit rijen ( 0 of 'index' ) of kolommen ( 1 of 'columns' ) moet worden gedropt.
index : Een alternatief voor het specificeren van axis=0 . Hiermee wordt aangegeven welke rijlabels moeten worden verwijderd.
kolommen : Een alternatief voor het specificeren van axis=1 . Hiermee wordt aangegeven welke kolomlabels moeten worden verwijderd.
inplace : indien ingesteld op True , wordt de bewerking ter plaatse uitgevoerd, wat betekent dat het oorspronkelijke DataFrame wordt gewijzigd. Indien False (standaard), wordt een nieuw DataFrame geretourneerd waarvan de opgegeven labels zijn verwijderd.
errors : Bepaalt hoe om te gaan met ontbrekende labels. Als 'verhogen' (standaard), wordt er een fout gegenereerd wanneer labels niet worden gevonden. Bij 'dwingen' worden ontbrekende labels stilletjes genegeerd.
Stel dat we het volgende DataFrame hebben:
We willen de rij met index 1 verwijderen. Om dit te doen met behulp van de drop-methode, kunt u de volgende code schrijven, te beginnen met import panda's:
import pandas as pd
# Drop row with index 1
df.drop(1, axis=0)
Het argument as=0 van de drop- functie vertelt de tolk dat we een rijgewijze bewerking uitvoeren. Het tweede argument 1 is de rij-index. Het vertelt de tolk om de rij met index 1 te laten vallen.
Na de bovenstaande bewerking krijgen we het volgende DataFrame:
Laten we nu zeggen dat we de kolom met Leeftijd als kolomkop uit ons DataFrame willen laten vallen. Om dit te bereiken, kunnen we de volgende code schrijven:
# Drop column 'Age'
df.drop('Age', axis=1)
Het argument as=1 vertelt de tolk dat we een kolomgewijze bewerking uitvoeren. Het argument 'Leeftijd' vertelt de tolk om de kolom met de naam 'Leeftijd' te laten vallen.
Na het uitvoeren van de bovenstaande code, krijgt u het volgende DataFrame:
Meerdere rijen en kolommen laten vallen
Het bovenstaande voorbeeld demonstreert het laten vallen van een enkele rij of kolom. Wat als u meerdere rijen of kolommen wilt verwijderen?
Om dit te bereiken, gebruiken we dezelfde code met enkele kleine wijzigingen. In plaats van een enkele waarde te gebruiken, kunnen we een lijst met argumenten aan de drop-functie geven om meerdere rijen en kolommen tegelijk te verwijderen.
Laten we zeggen dat ik de eerste 2 rijen in ons DataFrame wil laten vallen. Om dit te bereiken kunnen we de volgende code gebruiken:
# Dropping first 2 rows by index
df = df.drop([0, 1], axis=0)
In deze code vertellen we de interpreter om rijen 0 en 1 te laten vallen. De uitvoer van deze code wordt hieronder gegeven:
U kunt zien dat de rijen 0 en 1 niet meer in het DataFrame staan.
Laten we ook de kolommen Afdeling en Salaris laten vallen. Hiervoor kunnen we de volgende code gebruiken:
# Dropping columns by name
df = df.drop(['Salary', 'Department'], axis=1)
In dit Python- script vragen we de tolk om de kolommen met Salaris en Afdeling als kolomkoppen te verwijderen. De uitvoer van deze code wordt hieronder weergegeven:
Dit is ons laatste DataFrame. In totaal hebben we twee rijen en twee kolommen uit ons DataFrame verwijderd met behulp van de drop-methode.
Bekijk de volgende video voor meer informatie over MultiIndex in panda's:
Rijen en kolommen neerzetten met Inplace
In het vorige voorbeeld ziet u dat we eerst wijzigingen aanbrengen in het DataFrame en het vervolgens opslaan als een nieuw DataFrame. Dit is echter geen efficiënte manier om rijen en kolommen te verwijderen.
Een ander alternatief voor het verwijderen van rijen en kolommen is het inplace- argument van de functie neerzetten in te stellen op True .
Door de parameter inplace in te stellen op True , kunt u het DataFrame permanent wijzigen zonder dat u het opnieuw hoeft toe te wijzen.
Dit is handig bij het omgaan met grote DataFrames, omdat het geheugen kan besparen door te voorkomen dat er een nieuw DataFrame wordt gemaakt.
Het volgende is een voorbeeld van het neerzetten van rijen en kolommen met inplace :
# Dropping rows by index inplace
df.drop(labels=[0, 1], axis=0, inplace=True)
# Dropping columns by name inplace
df.drop(['Salary', 'Department'], axis=1, inplace=True)
De uitvoer van de bovenstaande code wordt hieronder gegeven:
Hier kunt u zien dat we geen nieuw DataFrame maken, maar wijzigingen aanbrengen in het oorspronkelijke.
Hoe te werken met indexen in Panda's
In deze sectie bespreken we hoe u met indexen kunt werken in een Panda's DataFrame. We behandelen de volgende twee subsecties:
Index instellen en resetten
ID en indexkolom
1. Index instellen en resetten
Een belangrijk aspect van het werken met panda's is begrijpen hoe u indexkolommen instelt en opnieuw instelt. Een index is een sleutel-ID voor elke rij en er zijn gevallen waarin u deze wilt wijzigen.
Een nieuwe index instellen
Om een nieuwe index in te stellen, kunt u de methode set_index() gebruiken . De syntaxis van set_index wordt hieronder gegeven:
df.set_index('column_name', inplace=True)
Het argument inplace=True betekent hier dat we wijzigingen aanbrengen in het bestaande DataFrame.
Om dit te demonstreren, gebruiken we het volgende DataFrame:
Laten we zeggen dat we de kolom Naam de index van ons DataFrame willen maken. Om dit te bereiken kunnen we de volgende code gebruiken:
df.set_index('Name', inplace=True)
Dit Python-script maakt van Name de index van ons DataFrame. De uitvoer van deze code wordt hieronder weergegeven:
Resetten van de indexwaarden
Om de index terug te zetten naar de standaardindeling (dwz een RangeIndex van 0 tot de lengte van het DataFrame min 1), kunt u de methode reset_index() gebruiken.
De syntaxis van reset_index() wordt hieronder gegeven:
df.reset_index(drop=True, inplace=True)
Door drop=True in te stellen , wordt de huidige indexkolom verwijderd, terwijl inplace=True ervoor zorgt dat de wijzigingen rechtstreeks op het DataFrame worden toegepast zonder een nieuwe aan te maken.
Wanneer we deze code toepassen op het vorige DataFrame, krijgen we de volgende uitvoer:
U kunt zien dat de naam, die voorheen onze index was, wordt teruggezet naar de standaardwaarden.
2. Verdere bewerkingen met indexkolom
Wanneer u een DataFrame importeert uit bijvoorbeeld een CSV-bestand, kunt u de parameter index_col gebruiken om een kolom op te geven die u als uw index wilt gebruiken.
De syntaxis van index_col wordt hieronder gegeven:
df = pd.read_csv('data.csv', index_col='column_name')
Als u bovendien een DataFrame wilt exporteren zonder de indexkolom, kunt u de indexparameter instellen op False.
De syntaxis voor deze methode wordt hieronder gegeven:
df.to_csv('output.csv', index=False)
Nu u de methode voor het verwijderen van de index begrijpt, gaan we in de volgende sectie kijken hoe u fouten kunt afhandelen bij het gebruik van de verwijderfunctie.
Hoe om te gaan met fouten bij het gebruik van de neerzetfunctie in Panda's
In deze sectie zullen we onderzoeken hoe fouten en speciale gevallen moeten worden afgehandeld bij het gebruik van de neerzetfunctie van panda's om indexkolommen uit een DataFrame te verwijderen.
Concreet bespreken we het volgende:
KeyError afhandelen
Werken met dubbele rijen
1. Hoe om te gaan met KeyError
Wanneer u de drop- functie in panda's gebruikt, kunt u een KeyError tegenkomen als de opgegeven index of kolom niet wordt gevonden in het DataFrame.
Om te voorkomen dat deze fout optreedt, kunt u de parameter errors gebruiken . De errors parameter heeft twee opties: 'raise' en 'ignore'. Standaard is deze ingesteld op 'verhogen', wat betekent dat er een KeyError wordt gegenereerd als de opgegeven index of kolom niet wordt gevonden.
U kunt het echter instellen op 'negeren' als u de fout wilt onderdrukken en door wilt gaan met het uitvoeren van de code.
Stel dat we het volgende DataFrame hebbenLaten we proberen een rij neer te zetten die niet bestaat in het DataFrame en kijken wat er gebeurt:
# Attempt to drop a non-existent index, will raise KeyError
# df.drop(5, inplace=True)
Het Python-script geeft de volgende foutmelding:
Om dergelijke fouten op te lossen, moet u ervoor zorgen dat u verwijst naar rijen die aanwezig zijn in de dataset.
2. Werken met dubbele rijen
Bij het opschonen van gegevens is het een belangrijke taak om naar duplicaten te zoeken en deze te verwijderen.
Omgaan met dubbele rijen in een DataFrame kan complexiteit toevoegen bij het gebruik van de neerzetfunctie .
Als u rijen wilt verwijderen op basis van gedupliceerde indexwaarden, kunt u de gedupliceerde functie gebruiken en vervolgens booleaanse indexering gebruiken om alleen de niet-gedupliceerde rijen te selecteren.
Stel dat we het volgende DataFrame hebben:
U kunt zien dat we dubbele indexen in onze dataset hebben. Om de duplicaten te verwijderen, identificeren we eerst de dubbele waarden met de volgende code:
# Find duplicated index values
duplicated_rows = df.index.duplicated(keep='first')
Hierna selecteren we alleen de niet-gedupliceerde rijen en slaan ze op in het vorige DataFrame met de volgende code:
# Select only non-duplicated rows
df = df[~duplicated_rows]
De uiteindelijke uitvoer wordt hieronder gegeven:
De uiteindelijke uitvoer heeft geen dubbele rijen meer.
Laatste gedachten
Terwijl u uw datawetenschap en -analyse voortzet, is inzicht in het manipuleren en beheren van gegevens een vaardigheid die het belangrijkste zal blijken te zijn.
Het beheersen van bewerkingen zoals het laten vallen van indexen in panda's is hier een belangrijk onderdeel van. Weten hoe u een index kunt resetten of verwijderen, is een opstap naar het opschonen, transformeren en het afleiden van waardevolle inzichten uit uw gegevens.
Door te leren hoe u indexen kunt verwijderen, kunt u uw DataFrames effectiever hervormen. U kunt ook schonere datasets maken die gemakkelijker te lezen en te analyseren zijn. Bovendien kan het resetten van indexen cruciaal zijn bij het samenvoegen of samenvoegen van meerdere DataFrames, waar indexconflicten kunnen ontstaan.
De mogelijkheid om indexen te laten vallen geeft u meer controle en flexibiliteit over uw datasets!
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten