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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python

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

Q&A

解決済

4回答

110295閲覧

python str型からのfloat型への変換

umechan47

総合スコア17

Python

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

1グッド

1クリップ

投稿2018/03/12 00:33

csvから読み込んできたデータをstrからfloatに変更したいのですが,以下のエラーが出てしまい変換できません.

python

1ValueError('could not convert string to float: "-249.000000"',)

コードとして,以下のコードで実行をすると,

python

1print data 2print type(data) 3print float(data)

出力が

python

1"-249.000000" 2<type 'str'> 3ValueError('could not convert string to float: "-249.000000"',)

となりエラーが出てしまいます.調べたのですが,分からないため,何かしらアドバイスをいただければと思います.
よろしくお願い致します.

退会済みユーザー👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/03/12 00:41

タグにPython2を追加しておいてください。文字コードに起因する問題な気がしています。
guest

回答4

0

数字の前後に"があるために失敗していそうです。

data = data.replace('"', '') float(data)

としてみてください。

投稿2018/03/12 00:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

umechan47

2018/03/12 00:56

有難うございます.replaceでうまく処理できました!
guest

0

ベストアンサー

CSVから読み込んだ文字列の前後に「"」がついているためです。
floatに変換する前に「"」を取り除く必要があります。

PlainText

1(py2) C:\Windows\system32>python 2Python 2.7.14 |Anaconda custom (64-bit)| (default, Nov 8 2017, 13:40:45) [MSC v.1500 64 bit (AMD64)] on win32 3Type "help", "copyright", "credits" or "license" for more information. 4>>> print float('12.34') 512.34 6>>> print float('"12.34"') # 前後に”がついている 7Traceback (most recent call last): 8 File "<stdin>", line 1, in <module> 9ValueError: could not convert string to float: "12.34" 10>>>

投稿2018/03/12 00:42

can110

総合スコア38341

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

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

y_waiwai

2018/03/12 00:46

ああ、そういうことでしたか
umechan47

2018/03/12 00:56

有難うございます.まさにそのとおりでかいけつしました.
guest

0

なんでだろうなぁ・・って思って試してみて思ったのですが、ひょっとしてダブルクォートがdataの中に含まれていませか?出力に"-249.000000"とあるのでそんな気がします。

python

1data = '-249.000000' 2print data -> -249.000000 3# print type(data) -> <type 'str'> 4# print float(data) -> -249.0 5 6data = '"-249.000000"' 7print data -> "-249.000000" 8# print type(data) -> <type 'str'> 9# print float(data) -> ValueError: could not convert string to float: "-249.000000" 10

投稿2018/03/12 00:56

kyoheyyy

総合スコア61

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

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

0

「python float str 変換」でぐぐるといろいろ出てきますので読んでみてください

投稿2018/03/12 00:36

編集2018/03/12 00:37
y_waiwai

総合スコア88049

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問