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

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

Сообщение Anonymous »

Раньше я кодировал в Python-Pandas для своей повседневной работы, и теперь я переезжаю на Python-Polars для хорошего изменения, так как она повышает мою производительность.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 десятичными местами (Float64 формат), тогда как «id» состоит из 6-7 цифр целых чисел (Int64 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')


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

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

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

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

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

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

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