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.
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.
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.
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
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.
Prova att returnera row.Value eller något liknande.
Tillägg: 19 sep 2021 17:47
return row[”Nederbörd(mm)”].Value
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!
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?
Hondel skrev:
Se ovan.
löste det!