Rekenen met in CSV file

Pagina: 1
Acties:

Onderwerpen

Vraag


  • PSon
  • Registratie: September 2020
  • Laatst online: 25-09-2020
Mijn vraag:
Ik krij steeds een foumelding wanneer ik met de inhoud van een cel uit een CSV file die terecht komt in een list wil gaan rekenen. Print ik alleen de inhoud van de cel dan gaat dat goed.

Relevante software en hardware die ik gebruik
Ik gebruik Thonny als ontwikkel tool met Python versie 3.5

Wat ik al gevonden of geprobeerd heb:
Bv. ik wil de volgende berekening uitvoeren nadat ik de csv file heb ingelezen:

print(row[0]//8)

Die fout krijg ik niet wanneer ik bv programmeer:

print(row[0])

...

Alle reacties


  • Christoxz
  • Registratie: Maart 2014
  • Laatst online: 13-09 23:12
En wat is de fout melding?
En wat is de waarde? van row[0]

[ Voor 38% gewijzigd door Christoxz op 24-09-2020 22:35 ]

T.Net Creality 3D Printer Discord


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dikke kans dat dat specifieke veld als string o.i.d. geïnterpreteerd wordt i.p.v. een getal. Maar zonder de fout te vermelden wordt dit wel ontzettend koffiedik kijken. Hierbij dan ook 't vriendelijke verzoek je topicstart aan te vullen (klik op "Wijzig" rechtsbovenaan je bericht) met de ontbrekende informatie en ook het vriendelijke verzoek voortaan onze Quickstart te hanteren bij 't openen van een topic. Zoals je daar zult lezen ontbreekt er namelijk nog wel meer in je topicstart zoals: wat heb je geprobeerd? Waar heb je op gezocht? Wat heb je gevonden? Wat werkte daar niet aan? Ook die informatie zie ik graag terug in een aangepast bericht :)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • PSon
  • Registratie: September 2020
  • Laatst online: 25-09-2020
De resultaten van het lezen van een rij van een .csv file levert een list met cijders en letters. De waarde van de row[0] is een cijfer bv. 4. Dit cijfer krijg ik zonder quotes te zien als ik programmeer print(row[0]). Dit levert dus 4. Echter in de list is dit cijfer omsloten door quotes bv.:

print[row] geeft ['4', 'HCRU', '12', '87', '88', '', '1'].

Wanneer ik nu met dit cijfer wil rekenen door bv. te programmeren print(row[0]//3) dan krijg ik de volgende foutmelding in rood:
Type error: unsupported operand type (s) for //: 'str' and 'int'
Ik vermoed nu dat het iets te maken heeft met de quotes in de list. Hoe kan ik deze het beste verwijderen?

Acties:
  • +1 Henk 'm!

  • MrSenne
  • Registratie: Maart 2012
  • Laatst online: 15-09 14:18
Je probeert een string (=tekst) te delen door een integer (=getal). Je zult dus een manier moeten zoeken om die string eerst om te zetten in een integer.

[ Voor 6% gewijzigd door MrSenne op 25-09-2020 13:05 ]


Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 23:54
Als ik je een tip mag geven; gebruik pandas voor het werken met tabulaire data. Pandas heeft ook een read_csv methode, waarmee je eenvoudig CSV bestanden kunt inlezen!

Zie: https://pandas.pydata.org/
Pagina: 1