Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In Ontwikkeling Laatst bijgewerkt: 23 september 2023
Deel op:
Invicti beveiligingsscanner voor webtoepassingen - de enige oplossing die automatische verificatie van kwetsbaarheden levert met Proof-Based Scanning™.

Leer de basis van het werken met pandas DataFrames: de basisgegevensstructuur in pandas, een krachtige bibliotheek voor gegevensmanipulatie.

Als je aan de slag wilt met gegevensanalyse in Python, is pandas een van de eerste bibliotheken waarmee je moet leren werken. Van het importeren van gegevens uit verschillende bronnen zoals CSV-bestanden en databases tot het verwerken van ontbrekende gegevens en het analyseren ervan om inzichten te verkrijgen – met pandas kun je al het bovenstaande doen.

Om te beginnen met het analyseren van gegevens met pandas, moet u de fundamentele gegevensstructuur in pandas begrijpen: gegevensframes.

In deze tutorial leert u de basis van pandas dataframes en veelgebruikte methoden om dataframes te maken. Vervolgens leer je hoe je rijen en kolommen uit het dataframe kunt selecteren om subsets van gegevens op te halen.

Laten we voor dit alles en meer aan de slag gaan.

Pandas installeren en importeren

Omdat pandas een gegevensanalysebibliotheek van derden is, moet je deze eerst installeren. Het wordt aanbevolen om externe pakketten te installeren in een virtuele omgeving voor je project.

Als je de Anaconda-distributie van Python gebruikt, kun je conda gebruiken voor pakketbeheer.

conda pandas installeren

Je kunt pandas ook installeren met pip:

pip installeer pandas

de pandas-bibliotheek vereist NumPy als afhankelijkheid. Dus als NumPy nog niet is geïnstalleerd, wordt deze ook geïnstalleerd tijdens het installatieproces.

Na de installatie van pandas kun je het importeren in je werkomgeving. In het algemeen wordt pandas geïmporteerd onder de alias pd:

importeer pandas als pd

Wat is een DataFrame in Pandas?

What-Is-a-DataFrame-in-Pandas

De fundamentele gegevensstructuur in pandas is het gegevensframe. Een dataframe is een tweedimensionale array van gegevens met gelabelde index en benoemde kolommen. Elke kolom in het gegevensframe, een pandasreeks genoemd, deelt een gemeenschappelijke index.

Hier is een voorbeeld van een dataframe dat we in de komende minuten vanaf nul zullen maken. Dit dataframe bevat gegevens over hoeveel zes studenten in vier weken uitgeven.

pd-dataframe-ex

De namen van de studenten zijn de rijlabels. En de kolommen hebben de namen ‘Week1’ tot ‘Week4’. Merk op dat alle kolommen dezelfde set rijlabels delen, ook wel de index genoemd.

Een Pandas DataFrame maken

Er zijn verschillende manieren om een pandas dataframe te maken. In deze tutorial bespreken we de volgende methoden:

  • Een dataframe maken van NumPy arrays
  • Een dataframe maken van een Python woordenboek
  • Een dataframe maken door CSV-bestanden in te lezen

Vanuit NumPy arrays

Laten we een dataframe maken van een NumPy array.

Laten we de gegevensarray van de vorm (6,4) maken, ervan uitgaande dat elke student in een willekeurige week tussen de $0 en $100 uitgeeft. De functie randint() van NumPy’s random module retourneert een array van willekeurige gehele getallen in een bepaald interval, [laag,hoog).

import numpy as np
np.random.seed(42)
data = np.random.randint(0,101,(6,4))
print(data)
array([[51, 92, 14, 71],
 [60, 20, 82, 86],
 [74, 74, 87, 99],
 [23, 2, 21, 52],
 [ 1, 87, 29, 37],
 [ 1, 63, 59, 20]])

Om een pandas dataframe te maken, kunt u de DataFrame constructor gebruiken en de NumPy array als data-argument opgeven, zoals in het voorbeeld:

studenten_df = pd.DataFrame(data=data)

Nu kunnen we de ingebouwde functie type() aanroepen om het type van students_df te controleren. We zien dat het een DataFrame-object is.

type(students_df)
# pandas.core.frame.DataFrame
print(students_df)
pandas-dataframe-01

We zien dat we standaard bereikindexering hebben die gaat van 0 tot numRows – 1, en de kolomlabels zijn 0, 1, 2, …, numCols -1. Dit vermindert echter de leesbaarheid. Het zal helpen om beschrijvende kolomnamen en rijlabels aan het gegevensframe toe te voegen.

Laten we twee lijsten maken: een om de namen van de studenten in op te slaan en een andere om de kolomlabels in op te slaan.

studenten = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
cols = ['Week1','Week2','Week3','Week4']

Wanneer je de constructor van het DataFrame aanroept, kun je de index en kolommen instellen op de lijsten met rijlabels respectievelijk kolomlabels die je wilt gebruiken.

studenten_df = pd.DataFrame(data = data,index = studenten,kolommen = cols)

We hebben nu het gegevensframe students_df met beschrijvende rij- en kolomlabels.

print(students_df)
pandas-dataframe-02

Om wat basisinformatie over het dataframe te krijgen, zoals ontbrekende waarden en gegevenstypen, kun je de methode info() oproepen op het dataframe-object.

studenten_df.info()
image-114

Vanuit een Python woordenboek

U kunt ook een pandas dataframe maken vanuit een Python woordenboek.

Hier is data_dict het woordenboek met studentgegevens:

  • De namen van de studenten zijn de sleutels.
  • Elke waarde is een lijst van hoeveel elke student uitgeeft van week één tot en met vier.
data_dict = {}
studenten = ['Amy','Bob','Chris','Dave','Evelyn','Fanny']
for student,student_data in zip(students,data):
 data_dict[student] = student_data

Om een dataframe te maken van een Python woordenboek, gebruik je from_dict, zoals hieronder getoond. Het eerste argument komt overeen met het woordenboek dat de gegevens bevat(data_dict). Standaard worden de sleutels gebruikt als de kolomnamen van het dataframe. Omdat we de sleutels als rijlabels willen instellen, stel je orient= 'index' in.

studenten_df = pd.DataFrame.from_dict(data_dict,orient='index')
print(students_df)
pandas-dataframe-from-dict

Om de kolomnamen te veranderen in het weeknummer, stellen we kolommen in op de lijst cols:

students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols)
print(students_df)
pandas-dataframe-03

Een CSV-bestand inlezen in een Pandas DataFrame

Stel dat de leerlinggegevens beschikbaar zijn in een CSV-bestand. U kunt de functie read_csv() gebruiken om de gegevens uit het bestand in te lezen in een pandas dataframe. pd.read_csv('file-path') is de algemene syntaxis, waarbij file-path het pad naar het CSV-bestand is. We kunnen de parameter names instellen op de lijst met kolomnamen die we willen gebruiken.

studenten_df = pd.read_csv('/content/students.csv',names=cols)

Nu we weten hoe we een gegevensframe moeten maken, kunnen we rijen en kolommen selecteren.

Kolommen selecteren uit een Pandas DataFrame

Er zijn verschillende ingebouwde methoden die u kunt gebruiken om rijen en kolommen uit een gegevensframe te selecteren. Deze tutorial behandelt de meest voorkomende manieren om kolommen, rijen en zowel rijen als kolommen uit een dataframe te selecteren.

Een enkele kolom selecteren

Om een enkele kolom te selecteren, kun je df_name<x>[col_name]</x> gebruiken, waarbij col_name de tekenreeks is die de naam van de kolom aangeeft.

Hier selecteren we alleen de kolom ‘Week1’.

week1_df = students_df['Week1']
print(week1_df)
single-column

Meerdere kolommen selecteren

Om meerdere kolommen uit het gegevensframe te selecteren, geef je een lijst op met alle kolomnamen die je wilt selecteren.

odd_weeks = students_df['Week1','Week3']]
print(odd_weeks)
multiple-columns

Naast deze methode kun je ook de methoden iloc() en loc() gebruiken om kolommen te selecteren. We zullen later een voorbeeld coderen.

Rijen selecteren uit een Pandas DataFrame

4-2

De methode .iloc() gebruiken

Om rijen te selecteren met de iloc() methode, geef je de indices die overeenkomen met alle rijen door als een lijst.

In dit voorbeeld selecteren we de rijen met een oneven index.

odd_index_rows = students_df.iloc[[1,3,5]]
print(odd_index_rows)
odd-rows

Vervolgens selecteren we een subset van het dataframe met de rijen op index 0 tot 2, het eindpunt 3 wordt standaard uitgesloten.

slice1 = students_df.iloc[0:3]
print(slice1)
select-rows

De methode .loc() gebruiken

Om de rijen van een dataframe te selecteren met de methode loc(), moet je de labels opgeven die corresponderen met de rijen die je wilt selecteren.

some_rows = students_df.loc['Bob','Dave','Fanny']]
print(some_rows)
some-rows

Als de rijen van het dataframe geïndexeerd zijn met het standaardbereik 0, 1, 2, tot numRows -1, dan zijn iloc() en loc() beide equivalent.

Rijen en kolommen selecteren uit een Pandas DataFrame

Tot nu toe hebt u geleerd hoe u rijen of kolommen uit een pandas dataframe kunt selecteren. Soms moet u echter een subset van zowel rijen als kolommen selecteren. Dus hoe doe je dat? U kunt de besproken methoden iloc() en loc() gebruiken.

In het onderstaande codefragment selecteren we bijvoorbeeld alle rijen en kolommen op index 2 en 3.

subset_df1 = students_df.iloc[:,[2,3]]
print(subset_df1)
dataframe-subset

Het gebruik van start:stop creëert een slice van start tot en met maar niet inclusief stop. Dus wanneer je zowel de start- als de stopwaarde negeert, begint de slice bij het begin en loopt door tot het einde van het gegevensframe, waardoor alle rijen worden geselecteerd.

Als je de methode loc() gebruikt, moet je de labels van de rijen en de kolommen die je wilt selecteren doorgeven, zoals in het voorbeeld:

subset_df2 = students_df.loc['Amy','Evelyn'],['Week1','Week3']]
print(subset_df2)
df-subset

Hier bevat het dataframe subset_df2 de gegevens van Amy en Evelyn voor Week1 en Week3.

Conclusie

Hier volgt een kort overzicht van wat je in deze tutorial hebt geleerd:

  • Nadat je pandas hebt geïnstalleerd, kun je het importeren onder de alias pd. Om een pandas dataframe object te maken, kunt u de pd.DataFrame(data) constructor gebruiken, waarbij data verwijst naar de N-dimensionale array of een iterable die de gegevens bevat. U kunt de rij en index en kolomlabels specificeren door respectievelijk de optionele index- en kolommenparameters in te stellen.
  • Met pd.read_csv(pad-naar-bestand) wordt de inhoud van het bestand in een dataframe gelezen.
  • Je kunt de methode info() op het dataframeobject aanroepen om informatie te krijgen over de kolommen, het aantal ontbrekende waarden, gegevenstypen en de grootte van het dataframe.
  • Om een enkele kolom te selecteren, gebruikt u df_name<x>[col_name]</x>, en om meerdere kolommen te selecteren, gebruikt u particular column, df_name[[col1,col2,...,coln]].
  • Je kunt ook kolommen en rijen selecteren met de methoden loc() en iloc().
  • Terwijl de iloc() methode de index (of index slice) van de te selecteren rijen en kolommen opneemt, neemt de loc() methode de rij- en kolomlabels op.

Je kunt de voorbeelden die in deze tutorial zijn gebruikt, vinden in dit Colab-notitieblok.

Bekijk vervolgens deze listicle van collaborative data science notebooks.

  • Bala Priya C
    Auteur
Met dank aan onze sponsors
Meer geweldige lezingen over ontwikkeling
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • Invicti maakt gebruik van Proof-Based Scanning™ om de geïdentificeerde kwetsbaarheden automatisch te verifiëren en binnen enkele uren bruikbare resultaten te genereren.
    Probeer Invicti
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer