Удаление символов, отличных от ASCII, из кадра данных PolarsPython

Программы на Python
Ответить
Anonymous
 Удаление символов, отличных от ASCII, из кадра данных Polars

Сообщение Anonymous »

У меня есть кадр данных Polars со смесью серий, который я хочу записать в CSV/загрузить в базу данных.
Проблема в том, что если какая-либо из серий UTF8 содержит символы, отличные от ASCII, это не удается из-за типа базы данных, который я использую, поэтому я хотел бы отфильтровать символы, отличные от ASCII, оставив при этом все остальное.
Я создал функцию, использующую лямбда-функцию, которая работает, но это медленнее по сравнению со стандартными функциями Polars, и я надеялся заменить это альтернативой Polars

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

def df_column_clean(df:pl.DataFrame, drop_non_ascii:bool=False):
"""
Takes a Polars Dataframe and performs data cleaning on all columns
Currently it only converts string series to ascii but can be expanded in the future
"""
if drop_non_ascii:
df_changes = []
df_columns = df.schema
for col_name, col_type in df_columns.items():
if col_type != pl.Utf8:
continue

# Remove non-ascii characters
df_changes.append(pl.col(col_name).apply(lambda x: None if x is None else x.encode('ascii', 'ignore').decode('ascii'), skip_nulls=False))

if len(df_changes) > 0:
return df.with_columns(df_changes)
return df
Является ли предложенный мной метод лучшим вариантом или у Polars есть встроенная функция, которую можно использовать для фильтрации символов, отличных от ASCII?
Заранее спасибо

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

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

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

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

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

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