9 svar
53 visningar
Kovac är nöjd med hjälpen
Kovac 108
Postad: 19 sep 12:57 Redigerad: 19 sep 12:57

Pandas funktion, koppla 2 kolumnvärden och ge ut resultat

Hej, min uppgift är att skapa en funktion som via ett datum som argument returnerar motsvarande regnvärde. 

 

Datan:

 

Min kod:

Jag måste alltså importera datan från csv filen först. Men hur kodar jag så att datumet jag anger ger tillbaka motsvarande data för regnfall? Några tips? Jag har ju som ni ser försökt med a som funktionsvariabel och sedan länka a till att det ska vara raden "Dygn" som anges i värden men tydligen funkar inte det.

Dr. G Online 7028
Postad: 19 sep 13:03

Du kan väl få ut vilket index som ditt aktuella datum har? Från regnkolumnen så vill du ha ut elementet med detta index. 

Kovac 108
Postad: 19 sep 13:27 Redigerad: 19 sep 13:41
Dr. G skrev:

Du kan väl få ut vilket index som ditt aktuella datum har? Från regnkolumnen så vill du ha ut elementet med detta index. 

Hur kodar man det då? Är det via .loc kommandot?

 

Är detta nära eller är jag helt fel ute? 3e kolumnen är ju datumet, 4e är datan för nederbörd.

Hondel 431
Postad: 19 sep 14:07 Redigerad: 19 sep 14:08

Du kan med data.loc[data[”Dygn”]==a] få ut den rad i data som har dygn-kolumnen lika med värdet a. Med detta kan du sedan plocka ut nederbörd. Typ

row = data.loc[data[”Dygn”]==a]

return row[”Nederbörd(mm)”]

Se exempelvis https://stackoverflow.com/questions/17071871/how-do-i-select-rows-from-a-dataframe-based-on-column-values

Kovac 108
Postad: 19 sep 14:56
Hondel skrev:

Du kan med data.loc[data[”Dygn”]==a] få ut den rad i data som har dygn-kolumnen lika med värdet a. Med detta kan du sedan plocka ut nederbörd. Typ

row = data.loc[data[”Dygn”]==a]

return row[”Nederbörd(mm)”]

Se exempelvis https://stackoverflow.com/questions/17071871/how-do-i-select-rows-from-a-dataframe-based-on-column-values

 

Tack det funkade! Men varför visas raden under med name och dtype? Kan jag få bort det på något sätt? Jag vet inte om det är godkänt då i exemplet nedan ska den bara ge ut ett värde av typ float.

 

Dr. G Online 7028
Postad: 19 sep 17:40

Prova att returnera row.Value eller något liknande. 


Tillägg: 19 sep 2021 17:47

return row[”Nederbörd(mm)”].Value

Kovac 108
Postad: 19 sep 18:13
Dr. G skrev:

Prova att returnera row.Value eller något liknande. 


Tillägg: 19 sep 2021 17:47

return row[”Nederbörd(mm)”].Value

Tack @Dr.G & Hondel, löste det!

Kovac 108
Postad: 26 sep 09:59 Redigerad: 26 sep 10:33
Dr. G skrev:

Prova att returnera row.Value eller något liknande. 


Tillägg: 19 sep 2021 17:47

return row[”Nederbörd(mm)”].Value

Hej igen, jag testade att köra koden i ett script och fick följande felmeddelande;

 

 

Men den funkar i jupyterhub. Vet ni vad som kan vara fel?

Kovac 108
Postad: 26 sep 09:59
Hondel skrev:

 

Se ovan.

Kovac 108
Postad: 26 sep 13:18

löste det!

Svara Avbryt
Close