諸々加工を行った最後にExcelに出力する処理を作成しているのですが、
一つのカラムに桁数の多い数字を扱っているため、Excelに出力すると5.81E+09のように表示されてしまいます。
文字列に置き換えてすべて数字が見える状態で出力したいのですが、どうしたらよいでしょうか?
やったこととしては、出力前の段階で該当カラムを文字列に置換しようとしましたが、下記の通りうまくいきませんでした。
※サンプルなので桁数を短くして記載していますが、sample['ID']を文字列置換しようとしています。
sample
ID Name Date
01 Yamada 2020-01-01
02 Mizuno 2020-01-01
03 Kawata 2020-01-01
04 Tanaka 2020-01-01
現状sample['ID']の型はobject型です。
トライしたことは以下になりますが、エラーは起きずピンク色のワーニングで出てしまい、
型を確認するとobject型のままになっています。
sample['ID'] = sample['ID'].astype(str) sample['ID'] = str(sample['ID']) #型確認 print(sample['ID'].head()) #エラー内容 A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
特定カラムのみ置換する方法以外でも、Excel出力時に桁数の多い数字がE+で表示されなくなる方法がそちらでも構いませんのでご教示いただけると幸いです。
補足:
sample.to_excel('C:\Users\notebook\sample.xlsx', encodint='Shift-JIS')
samplebook = openpyxl.load_workbook('sample.xlsx')
sheet = ['Sheet1']
sheet.cell(column=1).number_format = openpyxl.styles.numbers.FORMAT_TEXT
samplebook.save('C:\Users\notebook\sample.xlsx')
上記の通り、Excel出力後にExcelの表示形式を変更して保存してみましたが下記のエラーが出てしまいます。
AttributeError: 'list' object has no attribute 'cell'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/17 03:59