Wie schreibe ich einen Datenrahmen mit Zeichenfolgenwerten als formatierte numerische Werte in eine Excel-Datei?
Grundsätzlich habe ich eine Liste von Zeichenfolgenwerten, die in numerische konvertiert und in ein Excel-Blatt gedruckt werden sollen. Ich kann das schon, aber ich möchte, dass diese Werte als "Excel-Zahlenwerte" gedruckt werden . Folgendes habe ich bekommen:
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
listOfValues = ['3913375,45','126179,15','22324,72','26335,28','3699901,34']
df_values = pd.DataFrame({'TOTAL': listOfValues}).apply(pd.to_numeric)
df_values.to_excel(writer, sheet_name='test')
writer.save()
Mein Ergebnis ist:
Resultierendes Excel
Aber ich möchte, dass es als numerische Werte gedruckt wird, die durch Punkte getrennt sind, um die Vorbereitung zu erleichtern:
Was ich als Ergebnis haben möchte
(Die gewünschte Lösung kann im resultierenden Excel nicht als Zeichenfolge gedruckt werden. Es müssen numerische Werte sein, als ob wir die Option "Als Zahl formatieren (Umschalt + Strg + 1)" in libreoffice calc verwenden würden.)
(Ich verwende Python 3.8.5 und LibreOffice Calc zum Testen, aber das Ergebnis soll in Excel 2016 funktionieren.)
Ist das möglich? Vielen Dank für Ihre Hilfe und Entschuldigung für mein Englisch!
Antworten
Ich habe diese andere Frage gefunden , sie ist anders, aber die Antwort ist dieselbe, denke ich.
from openpyxl import load_workbook
wb = load_workbook('a.xlsx')
ws = wb[wb.sheetnames[0]]
cell11 = ws.cell(1, 1)
cell11.number_format = '#,##0.00'
wb.save('b.xlsx')
wb.close()
Es funktioniert mit diesem Format, aber es sieht so aus, als würde es mit dem '#.##0,00'
Format nicht funktionieren
Überprüfen Sie dies https://xlsxwriter.readthedocs.io/working_with_pandas.html
Es ist möglich, andere, nicht datums- / datumszeitliche Spaltendaten mit set_column () zu formatieren.
Versuchen Sie, den Formatierungsbeispielcode folgendermaßen zu ändern:
format1 = workbook.add_format({'num_format': '#,##0.00'})
dazu:
format1 = workbook.add_format({'num_format': '#.##0,00'})