Как заменить запятую на точку в python
Перейти к содержимому

Как заменить запятую на точку в python

Преобразование запятых в десятичные разделители в точки в Dataframe

Я импортирую файл CSV, как показано ниже, используя pandas.read_csv :

Пример файла CSV:

Проблема в том, что когда я позже в своем коде пытаюсь использовать эти значения, я получаю эту ошибку: TypeError: can’t multiply sequence by non-int of type ‘float’

Ошибка в том, что число, которое я пытаюсь использовать, написано не с точкой ( . ) в качестве десятичного разделителя, а с запятой ( , ) . После ручной замены запятых на точки моя программа работает.

Я не могу изменить формат ввода и, следовательно, должен заменить запятые в моем DataFrame, чтобы мой код работал, и я хочу, чтобы python делал это без необходимости делать это вручную. У Вас есть какие-то предложения?

3 ответа

pandas.read_csv имеет параметр decimal для этого: doc

То есть попробуйте с:

Я отвечаю на вопрос о том, как заменить десятичную comma на десятичную dot с помощью Python Pandas.

Где мы указываем чтение в десятичном разделителе в виде запятой, а выходной разделитель указывается в виде точки. Так

Где вы видите, что разделитель изменился на точку.

Я думаю, что упомянутый ранее ответ о включении decimal=»,» в панды read_csv является предпочтительным вариантом.

Однако я обнаружил, что это несовместимо с механизмом синтаксического анализа Python. например при использовании skiprow= read_csv прибегнет к этому движку, и поэтому вы не можете использовать skiprow= и decimal= в одном и том же операторе read_csv, насколько мне известно. Кроме того, я не смог заставить оператор decimal= работать (возможно, из-за меня)

Долгий путь, который я использовал для достижения того же результата, — это списки, .replace и .astype . Основным недостатком этого метода является то, что он должен выполняться по одному столбцу за раз:

Теперь столбец А будет иметь ячейки с плавающей точкой. Столбец b все еще содержит строки.

Обратите внимание, что .replace , используемый здесь, это не pandas, а встроенная версия Python. Версия Pandas требует, чтобы строка была точным соответствием или регулярным выражением.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *