Panda's versus loc: wat is het verschil?
Als het gaat om het selecteren van rijen en kolommen van een panda’s DataFrame, zijn .loc en .at twee veelgebruikte functies.
Hier is het subtiele verschil tussen de twee functies:
- .loc kan meerdere rijen en kolommen als invoerargumenten gebruiken
- .at kan slechts één rij en kolom als invoerargumenten gebruiken
De volgende voorbeelden laten zien hoe u elke functie in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #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 5 F 11 9 5 6 G 20 9 9 7:28 4 12
Voorbeeld 1: Loc gebruiken in Panda’s
De volgende code laat zien hoe u .loc gebruikt om toegang te krijgen tot de waarde in het DataFrame op indexpositie 0 van de puntkolom:
#select value located at index position 0 of the points column
df. loc [0, ' points ']
18
Dit retourneert een waarde van 18 .
En de volgende code laat zien hoe je .loc kunt gebruiken om toegang te krijgen tot rijen tussen indexwaarden 0 en 4, evenals punten- en hulpkolommen:
#select rows between index values 0 and 4 and columns 'points' and 'assists'
df. loc [0:4, [' points ', ' assists ']]
assist points
0 18 5
1 22 7
2 19 7
3 14 9
4 14 12
Of we nu toegang willen tot een enkele waarde of een groep rijen en kolommen, de .loc- functie kan beide doen.
Voorbeeld 2: Hoe te gebruiken in Panda’s
De volgende code laat zien hoe u .at gebruikt om toegang te krijgen tot de waarde in het DataFrame op indexpositie 0 van de puntkolom:
#select value located at index position 0 of the points column
df. at [0, ' points ']
18
Dit retourneert een waarde van 18 .
Stel echter dat we at proberen te gebruiken om toegang te krijgen tot de rijen tussen indexwaarden 0 en 4, evenals de punten- en hulpkolommen:
#try to select rows between index values 0 and 4 and columns 'points' and 'assists'
df. at [0:4, [' points ', ' assists ']]
TypeError : unhashable type: 'list'
We ontvangen een foutmelding omdat de functie at niet meerdere rijen of kolommen als invoerargumenten kan gebruiken.
Conclusie
Wanneer u toegang wilt krijgen tot een enkele waarde in een Panda DataFrame, werken de functies loc en at prima.
Wanneer u echter toegang wilt krijgen tot een groep rijen en kolommen, kan alleen de loc- functie dit doen.
Gerelateerd: Panda’s loc versus iloc: wat is het verschil?
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe u rijen selecteert op basis van meerdere voorwaarden met behulp van Pandas Loc
Hoe u rijen selecteert op basis van kolomwaarden in Pandas
Hoe rijen op index te selecteren in Pandas