Translate

pythonのデータ型でエラーが起こった話【超絶初心者が困ったポイント】


最近python でcsvデータを処理することが多くて、一部詰んだところがあったので備忘録として残していきます。

python の行指定がうまくいかない


python で特定の値を取得してその値の範囲の行を抽出したいと思い、いろいろ頑張ってみました。特定の値を指定するところまでは行けたのですが、その値を行指定に入力した後にエラーを吐いてしまって一時的に詰みました。

どこでエラーを起こしているかというと
例)
a = ○○
b = ◆◆
range = data [a:b]

こんな感じの式を作ってました。

実数を入れると動いたので、多分特定の値を取得するところが間違い

他の実数を入れるとしっかりと範囲を抽出することができたので、原因は特定の値を抽出するところにあると考えました。しかし値を見てみても妥当な値が出ているので原因はわかりませんでした。

しかし甘味は一点見落としていたのです…

データ型が間違えていたっぽい

どうもいろいろいじってみると、他のちゃんと動いているプログラムと今回作ったプログラムを比較した際に一点気づいた点があります。それは小数点の有無でした。

上手くは知っているプログラムは定数だったのです。今回はなんか小数点が混じっていたのでそれが原因でした。

結果的にデータ型が間違っているという結論に至り、データ型をfloat 型からint 型に変更することによって解決しました。

データ型の間違いはエラーの原因


今回初めてデータ型のエラーで詰んでしまったので良い教訓になりました。行列処理の際には、行指定は定数はでければならないということが身に染みてわかったので良かったです。

やはりまだまだビギナーからは抜け出せませんね(笑)