Вопрос решен, но этот ответ должен обновляться для всех пользователей, приходящих сюда с такой же проблемой. Проблема заключается в том, что ValueError генерируется, если вы передаете строковое представление с плавающей точкой в int или строковое представление чего угодно, кроме целого числа (включая пустую строку). Если вы хотите передать строковое представление числа с плавающей точкой в int, вы можете сначала преобразовать его в число с плавающей точкой, а затем в целое число:
Приведенный ниже код должен показать вам, что происходит с вашим вводом.
>>> int('5')
5
>>> float('5.0')
5.0
>>> float('5')
5.0
>>> int(5.0)
5
>>> float(5)
5.0
>>> int('5.0')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '5.0'
>>> int(float('5.0'))
5
Как вы упомянули в комментариях, преобразование в float вместо int также будет работать, как здесь.
x.append(float(data[i][0]))
Подробнее об этом можно прочитать здесь