Finde de Mindste Værdier i en Kolonne
Vi vil lære en anden vigtig funktion, som returnerer de mindste eller største værdier. Du ved allerede, at vi kan sortere værdier og derefter udtrække et bestemt antal rækker. Ikke overraskende kan pandas gøre dette med kun én linje kode. Se eksemplet på, hvordan man henter de ældste femten biler:
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) data_smallest = data.nsmallest(15, 'Year') print(data_smallest.head(15))
Hvis du vil sortere efter én kolonne og derefter efter en anden, skal du blot angive en liste med kolonnenavne i den ønskede rækkefølge. Se eksemplet, hvor vi først sorterer efter 'Year'
og derefter efter 'Engine_volume'
. Denne kode vil først udtrække de 5
ældste biler, og hvis årstallene er ens, vil bilen med den laveste værdi i kolonnen 'Engine_volume'
få prioritet:
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) data_smallest = data.nsmallest(5, ['Year', 'Engine_volume']) print(data_smallest.head())
Sammenlign de to eksempler nedenfor. Nu udvider vi funktionen en smule. Vi returnerer eksempler med kolonnens 'Year'
-værdier. I kolonnen kan 'Year'
-værdier gentages, så hvis vi ønsker at vise de ti ældste biler med den tidligere syntaks, vil funktionen kun tage ti værdier. Den tager ikke højde for, om den 11. eller 12. værdi er den samme som den 10. Vi kan tilføje argumentet keep = 'all'
til .nsmallest()
-metoden for at undgå sådanne tilfælde. Se eksemplet og prøv at køre det for at se forskellen:
1234567891011import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) # Case without using `keep = 'all'` argument data_smallest = data.nsmallest(6, 'Year') print(data_smallest) data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) # Case with using `keep = 'all'` argument data_smallest = data.nsmallest(6, 'Year', keep = 'all') print(data_smallest)
Swipe to start coding
Endelig er det tid til at øve! Her skal du følge denne algoritme:
- Hent data om biler, hvor kolonnen
'Year'
har værdier større end2010
. - Udtræk de billigste
15
biler (de15
mindste værdier i kolonnen'Price'
). Inkluder alle duplikerede værdier i kolonnen'Price'
. - Udskriv alle værdier i datasættet
data_cheapest
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain what the `nsmallest()` function does in pandas?
What does the `keep='all'` argument change in the output?
How can I use `nlargest()` instead of `nsmallest()` for the largest values?
Awesome!
Completion rate improved to 3.03
Finde de Mindste Værdier i en Kolonne
Stryg for at vise menuen
Vi vil lære en anden vigtig funktion, som returnerer de mindste eller største værdier. Du ved allerede, at vi kan sortere værdier og derefter udtrække et bestemt antal rækker. Ikke overraskende kan pandas gøre dette med kun én linje kode. Se eksemplet på, hvordan man henter de ældste femten biler:
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) data_smallest = data.nsmallest(15, 'Year') print(data_smallest.head(15))
Hvis du vil sortere efter én kolonne og derefter efter en anden, skal du blot angive en liste med kolonnenavne i den ønskede rækkefølge. Se eksemplet, hvor vi først sorterer efter 'Year'
og derefter efter 'Engine_volume'
. Denne kode vil først udtrække de 5
ældste biler, og hvis årstallene er ens, vil bilen med den laveste værdi i kolonnen 'Engine_volume'
få prioritet:
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) data_smallest = data.nsmallest(5, ['Year', 'Engine_volume']) print(data_smallest.head())
Sammenlign de to eksempler nedenfor. Nu udvider vi funktionen en smule. Vi returnerer eksempler med kolonnens 'Year'
-værdier. I kolonnen kan 'Year'
-værdier gentages, så hvis vi ønsker at vise de ti ældste biler med den tidligere syntaks, vil funktionen kun tage ti værdier. Den tager ikke højde for, om den 11. eller 12. værdi er den samme som den 10. Vi kan tilføje argumentet keep = 'all'
til .nsmallest()
-metoden for at undgå sådanne tilfælde. Se eksemplet og prøv at køre det for at se forskellen:
1234567891011import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) # Case without using `keep = 'all'` argument data_smallest = data.nsmallest(6, 'Year') print(data_smallest) data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/cars.csv', index_col = 0) # Case with using `keep = 'all'` argument data_smallest = data.nsmallest(6, 'Year', keep = 'all') print(data_smallest)
Swipe to start coding
Endelig er det tid til at øve! Her skal du følge denne algoritme:
- Hent data om biler, hvor kolonnen
'Year'
har værdier større end2010
. - Udtræk de billigste
15
biler (de15
mindste værdier i kolonnen'Price'
). Inkluder alle duplikerede værdier i kolonnen'Price'
. - Udskriv alle værdier i datasættet
data_cheapest
.
Løsning
Tak for dine kommentarer!
single