rzutowanie do int

Odpowiedz Nowy wątek
2018-10-11 15:34
Krzywy Szewc
0

Witam,
Mam problem z konwersją do int.
Wczytuję dane z excela
a = row[11] # tu jest jedna liczba
b = int(a) #<- tu wywala błąd
c = c + b

b = int(a)
ValueError: invalid literal for int() with base 10:

Domyślam się że row[11] jest traktowany jako string. Dlaczego nie udaje mi się tego zamienić na int?

Pozostało 580 znaków

2018-10-11 15:39
0

Na oko to masz tam pustego stringa i robisz int("")


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

2018-10-11 17:05
Krzywy Szewc
0

To jak to zrobić poprawnie?

Pozostało 580 znaków

2018-10-11 17:17
0

Zobacz co tam jest.


Pozostało 580 znaków

2018-10-11 18:09
0
print(row[11], type(row[11]))

Po tym co ci wyświetli jako wynik będzie wiadomo z czym mamy doczynienia :).
Chyba że przeniosłeś nawyk z innego języka programowania, np. C/Java i te row nie jest jedenastym elementem string'a bądź jakiegoś zbioru indeksowanego ;p


Linux Mint
Arduino / Python 3.5.2

Pozostało 580 znaków

2018-10-11 20:09
Krzywy Szewc
0
Guaz napisał(a):
print(row[11], type(row[11]))

Po tym co ci wyświetli jako wynik będzie wiadomo z czym mamy doczynienia :).
Chyba że przeniosłeś nawyk z innego języka programowania, np. C/Java i te row nie jest jedenastym elementem string'a bądź jakiegoś zbioru indeksowanego ;p

Dzięki, przegapiłem że w 1 wierszu są ich nazwy, a dopiero w kolejnych liczby...

Pozostało 580 znaków

2018-10-12 09:03
1

Nie wiem, co konkretnie chcesz osiągnąć obrabiając te dane z excela, ale nie wygodniej byłoby Ci korzystać z np. Pandas? Wsparcie dla plików Excela jest, można śmiało wciągać i obrabiać ;)

Np zrzutowanie całej kolumny do typu liczbowego wyglądałoby mniej więcej tak:

prices_numeric = pandas.to_numeric(df["price"], errors="coerce") # dostajesz Series, błędne do NaN
 
df["price"] = pandas.to_numeric(df["price"], errors="ignore"]) # przypisujesz do kolumny, błędne wartości pozostaną niezmienione

Nie mówiąc o tym, że mógłbyś operować na nazwach kolumn, a nie ich indeksach które jak sam miałeś okazję się przekonać czasami się człowiekowi mieszają ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 1

Robot: CCBot