あるcsvファイルから値を読みだして別のcsvファイルに書き込みを行いますが
printではすべての桁数表示されますが、書き込んだcsvファイルは指数表示になってしまいます。
指数表示ではなくすべての桁数をcsvファイルとして保存しておきたいです。
Python
1data_file = open('AAA.csv') 2data_reader = csv.reader(data_file) 3 4 5for row in data_reader: 6 hasou_data = list(row) 7 print(hasou_data) 8 9 upload_file = open('BBB.csv','a',newline='') 10 upload_write = csv.writer(upload_file) 11 upload_write.writerow(hasou_data) 12 upload_file.close() 13```
・タイトルの「Physon」は「Python」ですか?
・コードは「コードの挿入」で記入してください。
・csvファイルのサンプルを提示してください。
・タグに「pandas」とありますがコード中に出てきません。どういう意味で付けたのでしょうか?
csv.reader() は基本的にデータを文字列として読み込みます。
上記のソースコードにはその文字列を数値に変換する処理が見当たりませんので、csv.writer() ではその文字列を文字列のまま CSVデータに書き込むかと思われます。
ですので質問にあるような「print文では全ての桁数が表示されていたのに、CSVファイルでは指数表示になっている」ことは起こらないように思うのですが、本当に上記のコードにて指数表記に勝手に変換されるようなことが起こったのでしょうか?
ちなみに、データが数値型(浮動小数型)のデータに変換されているのであれば、指数表記に変換されることはありえます。
ご回答ありがとうございます。
確認したところprint文でも指数表示になっていました。申し訳ありません。
読みだすcsvも既に指数表示になっており、列により文字列、数値が混ざっているため、指数表示されてしまう箇所のみ数値型にして読み出し、新たなcsvファイルに書き込みにはどうすればよいのでしょうか?
meg_さん
いろいろとご指摘ありがとうございます。
正しく質問できずにすみません。
回答1件
あなたの回答
tips
プレビュー