В csv из str в int или float

cayman2578

Новичок
Пользователь
Май 5, 2021
7
0
1
Друзья, помогите, пожалуйста, разобраться.

Никак не могу сообразить, как преобразовать значение из файла csv из str в float.
Python:
import csv
 
with open("C:\\Users\\offic\\ASKES3800P20210604") as ask:
    reader = csv.reader(ask)
    for row in reader:
        date = row[1]
        ask = row[2]

В row[2] (который воспринимается здесь как str) идет числовой ряд формата 0.00.

Пробовал:
ask = float(row[2]) # не сработало


ask = row[2]
а = float(ask) # тоже не сработало


Буду очень благодарен за подсказку.
 

Вложения

  • 2021-05-20 (1).png
    2021-05-20 (1).png
    69,4 КБ · Просмотры: 2

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
f = float(ask) / 2
не пойдет?
 

cayman2578

Новичок
Пользователь
Май 5, 2021
7
0
1
f = float(ask) / 2
не пойдет?
Нет.
Я уже начинаю понимать. Это видимо из=за того, что у меня в файле стоит заголовок столбца. Сейчас пытаюсь понять, как пропустить его чтение.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
можете скинуть файл? если он не секретный...
 

cayman2578

Новичок
Пользователь
Май 5, 2021
7
0
1
можете скинуть файл? если он не секретный...
Конечно. Здесь https://1drv.ms/u/s!AquoJ9AcviOIgP4gIKYZs4aePY5tcw?e=swYIFe
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 648
472
83
ну можно так
Python:
import csv

with open("C:\\Users\\offic\\ASKES3800P20210604") as ask:
    reader = csv.reader(ask)
    for row in reader:
        date = row[1]
        ask = row[2]
        try:
            f = float(ask) / 2
        except ValueError:
            print("Type error")
        print(date, ask)

но есть более изящный способ, так как try except накладывает большие расходы, хотя по современным меркам и не очень большие наверное...
как то узнать еще можно, получиться ли привести тип к другому типу, щас чет вспомнить не могу так быстро, давно не писал на питоне, думаю можно нагуглить...

upd
я путаю наверное, больше никак не узнать, так как при неудаче в питоне вызывается исключение, и его нужно перехватить с помощью try except...
но могу ошибаться...
 
Последнее редактирование:

cayman2578

Новичок
Пользователь
Май 5, 2021
7
0
1
Спасибо большое за вариант!

Убрал заголовки столбцов этим: next(reader, None)
После чего смог str превратить в float
 

Форум IT Специалистов