Polars.write_excel: Как удалить тысячу разделителей для i64 и f64 и эффективно удалить ноль для F64?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Polars.write_excel: Как удалить тысячу разделителей для i64 и f64 и эффективно удалить ноль для F64?

Сообщение Anonymous »

Решение по состоянию на 16 июля 25: < /p>
  • См. Ответ rowabor float_precision для следствия за ноль. Используйте либо pandas.to_excel или polars.write_csv вместо этого. Polars.write_excel Двигатель по умолчанию: xlsxwriter еще не полностью зрел.
Я привык кодировать в Python-pandas для своей работы в день, и теперь я перемещаюсь в Python-polars для хорошей изменения в Pythons. /> библиотеки, которые я использую:

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

polars as pl< /code>
polars.selectors as sc

В моем текущем проекте я импортировал свои данные через pl.read_excel ('abc.xlsx', engine = 'openpyxl') вместо двигателя по умолчанию, так как он дал мне ошибку на столбце, что он не может обнаружить dtype.
my into your wyly into datepes и in in/in on/in on/in in/in in/in in in/in in on/in in in/in in in/in in. Float64 . Перед экспортом моих данных в Workbook .xlsx Excel мне пришлось использовать df = df.with_columns (sc.by_dtype (pl.float64) .round (2)) , чтобы округлить все Float64 столбцы до 2 десятимальных мест. После этого я экспортировал свои данные, используя pl.write_excel ('abc_v2.xlsx') .
(1) Вот первая проблема: Float64 столбцы, показанные в Python, имеют 2 десятичных мест, но дополнительное Zero добавляется к обратному значениям в исходном файле Excel. из 2 десятичных мест без ноль во всех столбцах Float64 .
(2) Моя вторая задача: оба int64 и float64 столбцы, показанные в Python, не имеют тысячи сепараторов, но в тысячах департамента вводится не тысячи данных. Int64 и float64 столбцы. У меня нет такой проблемы с pandas.to_excel () < /code>. < /P>
--- Редактировать ---
добавил мои коды ниже для вашего удобства для тестирования. «Sum_per_group», «сумма» и «Общая сумма» состоят из чисел с плавающей запятой с 2 десятичными местами ( формат), тогда как «id» состоит из 6-7 цифр целых чисел ( format).
import polars as pl
import polars.selectors as sc

df = pl.read_excel('../Documents/abc.xlsx', engine='openpyxl')

df = df.with_columns(sum_per_group = pl.col('Amount').sum().over('ID').sort_by('ID'))

df = df.with_columns(sc.by_dtype(pl.Float64).round(2))

df = df.with_columns([
pl.when(pl.col('sum_per_group') != pl.col('Total Amount'))
.then(pl.lit('No'))
.otherwise(pl.lit('Yes'))
.alias('Flag')
])

df.write_excel('abc_v2.xlsx')
< /code>
---EDIT2---
Added a picture of my OS regional settings
Изображение


Подробнее здесь: https://stackoverflow.com/questions/797 ... -remove-tr
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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