文字列値のデータフレームをフォーマットされた数値としてExcelファイルに書き込む方法は?
基本的に、数値に変換してExcelシートに出力することを目的とした文字列値のリストがあります。すでに それを行うことはできますが、それらの値を「Excelの数値」として出力したいと思います。これが私が得たものです:
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()
私の結果は次のとおりです。
結果のExcel
しかし、次のように、準備を簡単にするために、ドットで区切られた数値として印刷する必要があります。
結果として欲しいもの
(私が望むソリューションは、結果のExcelで文字列として印刷することはできません。libreofficecalcで[数値としてフォーマット(Shift + ctrl + 1)]オプションを使用しているかのように、数値である必要があります)。
(テストにはPython3.8.5とLibreOfficeCalcを使用していますが、結果はExcel 2016で機能することを目的としています)。
それは可能ですか?あなたの助けに感謝し、私の英語について申し訳ありません!
回答
DonLarry
私はこの別の質問を見つけました、それは異なります、しかし答えは私が思うのと同じです。
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()
その形式では機能しますが、その形式では機能しないよう'#.##0,00'
です
DonLarry
これをチェックして https://xlsxwriter.readthedocs.io/working_with_pandas.html
set_column()を使用して、他の日付/日時以外の列データをフォーマットすることができます。
書式設定のサンプルコードを次のように変更してみてください。
format1 = workbook.add_format({'num_format': '#,##0.00'})
これに:
format1 = workbook.add_format({'num_format': '#.##0,00'})