Próbuję napisać pandę DataFrame
do pliku .xlsx
, gdzie różne kolumny numeryczne miałyby różne formaty. Na przykład niektóre pokazywałyby tylko dwa miejsca po przecinku, niektóre nie pokazywałyby żadnych, niektóre byłyby sformatowane jako procenty z symbolem "%" itd.Pisanie pand DataFrame do Excela z różnymi formatami dla różnych kolumn
Zauważyłem, że DataFrame.to_html()
ma parametr formatters
, który pozwala na to właśnie , mapowanie różnych formatów do różnych kolumn. Jednak nie ma podobnego parametru w metodzie DataFrame.to_excel()
. Najbardziej mamy float_format
, która jest globalna dla wszystkich liczb.
Znam wielu tak posty, które są przynajmniej częściowo związane z moim pytaniem, na przykład:
- Use the older
openpyxl
engine to apply formats one cell at a time. Jest to podejście, z którym odniosłem największy sukces. Oznacza to jednak zapisywanie pętli, aby zastosować formaty komórka po komórce, pamiętając przesunięcia itp. - Render percentages by changing the table data itself into strings. Przejście przez zmianę rzeczywistych danych zainspirowało mnie do rozwiązania problemu formatowania miejsc dziesiętnych przez wywołanie
round()
w każdej kolumnie przed zapisaniem do Excela - to też działa, ale chciałbym uniknąć zmiany danych. - Różne inne, przeważnie około formatów daty
Czy istnieją inne, bardziej wygodne funkcje Excel powiązane/właściwości w API pand, które mogą pomóc tutaj, lub coś podobnego na openpyxl
, czy może jakiś sposób, aby określić format wyjściowy metadane bezpośrednio na każdą kolumnę w DataFrame
, która byłaby później interpretowana przez różne produkty?
co z usunięciem WSZYSTKICH formatów? Czy ktoś wie, czy jest na to szybki sposób? – Lisle