Усечение столбца String поляры LazyFrame до определенного количества символовPython

Программы на Python
Ответить
Anonymous
 Усечение столбца String поляры LazyFrame до определенного количества символов

Сообщение Anonymous »

Я готовлю несколько файлов для загрузки в базу данных, используя scan_csv Polars.
Некоторые столбцы содержат очень длинный текст, который необходимо обрезать до заданного количества символов, иначе загрузка завершится неудачно.
Как лучше всего изменить объект LazyFrame, созданный scan_csv, чтобы все столбцы pl.String имели не более определенное количество символов?
Я знаю, что изменяемые столбцы можно определить, проверив атрибут схемы.
Пример данных:
При наличии некоторых ложных данных:

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

# pretend this comes from scan_csv()
example = pl.LazyFrame(
{
"big_column": ["a" * 1000],
"another_big_column": ["b" * 1000],
"small_column": ["c"],
"integer_column": [1]
},
schema = {
"big_column": pl.String,
"another_big_column": pl.String,
"small_column": pl.String,
"integer_column": pl.Int8
}
)
Я думаю, мы можем сделать что-то вроде:

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

for col, dtype in example.schema.items():
if dtype is pl.String:
# do something with col
Вопросы:
Что должен делать # с частью col в приведенном выше примере, чтобы достичь желаемого без загрузки всего LazyFrame в память?
Можно ли вообще выполнить такую ​​модификацию на месте?>

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

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

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

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

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

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