Обрабатывать недопустимые последовательности кодирования в CSV с помощью поляровPython

Программы на Python
Ответить
Anonymous
 Обрабатывать недопустимые последовательности кодирования в CSV с помощью поляров

Сообщение Anonymous »

Рассмотрим следующий фрагмент: < /p>

Код: Выделить всё

from io import TextIOWrapper, BytesIO
import polars as pl
import pandas as pd

csv_str = (
b"spam,egg\n"
+ "spam,œuf\n".encode("cp1252")
+ "spam,αυγό\n".encode("utf8")
)
content = BytesIO(csv_str)
wrapped = TextIOWrapper(content, errors="replace")

try:
df = pl.read_csv(wrapped)
except Exception as e:
print("polars failed!")
print(e)

wrapped.seek(0)

try:
df = pd.read_csv(wrapped, sep=",")
except Exception as e:
print("pandas failed!")
print(e)

У вас есть неверный CSV-файл, какой он есть, с двумя разными кодировками. Как ни странно, это по-прежнему реальная проблема, причем слишком частая.
С помощью pandas вы можете справиться с этим через TextIOWrapper или встроенный аргументcoding_errors.
Вопросы:
  • почему это не работает с полярами< /code>, учитывая, что TextIOWrapper должен обрабатывать этот ввод в виде потока?
  • есть ли способ обработать это изначально с помощью поляров (я имею в виду любой другой способ, кроме чтения с помощью pandas и последующего преобразования с помощью Polars.from_pandas)?


Подробнее здесь: https://stackoverflow.com/questions/793 ... ith-polars
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»