質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1458閲覧

vscodeでcsvデータ内の指数表記を解除して正確な数値を取得したい

shota3455

総合スコア1

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/03/17 06:01

編集2022/03/17 06:16

flaskを使用したpythonコードでcsvファイルを読み込み、そのファイル内の'ID'というタイトルの列を取得するために

python

1df= pd.read_csv("~.csv") 2id_list = df[:, "ID"].values.tolist()

と記述してIDのリストを作成しました。
その後IDのリストから必要なIDを数個取り出し、そのIDを別のリストに格納しました。

ans1 = ~list[0]

のようにリストの中の数値を取り出し、htmlファイルにrender_templateを使用してans1を送り、表示してみました。その値は1.2345e+18と指数表記になっていたため、pythonプログラムで

ans1 = int(ans1)

とint型に変更してからhtmlファイルに送ってみました。そうすると123450000000000000と表示されてしまい、指数表記で省略された箇所が表示されませんでした。

回答者様からの質問でわかりにくかった部分を追加して現状を追記します。
元々の数値が"123456687654348466"だったとすると、csvファイル内で指数表記に変更され、"1.2345e+18"と表示されます。その値を取り出し、表示すると1.2345e+18となるのですが、求めている表示は”123456687654348466”の方であるため、int型に直して表示を戻せないかと試みたところ、"123450000000000000 "と表示されてしまい、12345以降の6687654348466が消えてしまっているという状況です。

以上のような状況で、指数表記を正しく解除し、18桁の数値を取り出したいです。
このプログラムでの改善点やミスがわかる方ご教授いただけると幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/03/17 06:05

123450000000000000 は18桁ですが。。。
shota3455

2022/03/17 06:11

わかりにくくて申し訳ないです、元々の数値が"123456687654348466"だったとすると、csvファイル内で指数表記に変更され、"1.2345e+18"と表示されます。その値を取り出し、表示すると1.2345e+18となるのですが、求めている表示は”123456687654348466”の方であるため、int型に直して表示を戻せないかと試みたところ、"123450000000000000 "と表示されてしまい、12345以降の6687654348466が消えてしまっているという状況です。
melian

2022/03/17 06:13

なるほど、了解です。その辺の状況も質問文に追記しておく方がよいかと思います。
shota3455

2022/03/17 06:16

ありがとうございます。質問欄に同じように追記させていただきました。
退会済みユーザー

退会済みユーザー

2022/03/17 06:16

CVS ファイルの文字列 "1.2345e+18" には 12345 以下の 6687654348466 という情報が含まれていないので、それはもうどうしようもないのでは? 
退会済みユーザー

退会済みユーザー

2022/03/17 06:19

ところで VSCode は関係ないのでは? 単に、CSV ファイルの文字列の設定とそれの Python アプリでの読み込みの問題では? であれば、タグと表題を訂正した方が良いのでは?
TakaiY

2022/03/17 11:11

「元々の数値が"123456687654348466"だったとすると、csvファイル内で指数表記に変更され、"1.2345e+18"と表示されます。」 - そのCSVファイルをメモ帳などで開いたときに記載されている値は"123456687654348466"と"1.2345e+18"のどちらですか? - CSVファイルに入っているのが"1.2345e+18"だとすると、元の値はどこにありますか?
guest

回答1

0

ベストアンサー

"1.2345e+18" というのは、"123450000000000000 "です
決して、”123456687654348466”ではありません。

CSVファイルにする段階で、6桁以降の数値の欠落が起こっているため、CSVからこれをどうにかすることは不可能です

投稿2022/03/17 11:05

y_waiwai

総合スコア88171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shota3455

2022/03/17 11:48

解決しました!csvファイルを受け取った段階で欠落が起こっていたことが原因で、csvファイルを作成した元のファイルから読み込みとプログラムの構築をしなおしたところ、正常に数値の表示ができました。 y_waiwaiさんをはじめこの質問に目を通していただきご回答、追記・修正依頼を送ってくださった皆様ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問