【Python】TypeError: ‘>=’ not supported between instances of ‘str’ and ‘int’の原因と対処法

環境情報

  • MacBook Air (11-inch, Early 2015)
  • macOS バージョン 11.6(20G165)
  • Python 3.8.8(64bit版)

エラー発生の経緯

Pythonで条件抽出を行おうとした際、以下のエラーが発生しました。

TypeError: '>=' not supported between instances of 'str' and 'int'

このエラーは、データ型に関する典型的なエラーの一つです。

実際に実行したコマンド

diff['c00'] >= 180

このコードを実行した際に、TypeErrorが発生しました。

エラーの原因

エラーの原因は、
比較演算子 ‘>=’ を使った際に、左右のデータ型が異なっていたことです。

具体的には、

  • diff['c00']object型(実態は文字列型 str)
  • 180整数型(int型)

であったため、
Pythonが文字列と整数を比較できずエラーになりました。

Pythonでは、比較演算子(>=など)を使用する場合、
両方のデータ型が一致している必要があります。

対処方法|型を統一する

エラーを解消するためには、
diff['c00']のデータ型をint型に変換する必要があります。

まず、以下のコードで型変換を行いました。

diff['c00'] = diff['c00'].astype('int')

これで、diff['c00']は整数型(int型)に統一されました。

その後、改めて条件式を実行しました。

diff['c00'] >= 180

この時点で、エラーは消えました

さらに|条件抽出の実行

上記のままだと、TrueFalseが並ぶだけで、
実際に抽出されたデータは得られません。

条件に合致するデータを取り出すためには、
条件式を角括弧[]で囲んで抽出します。

正しくは次のように記述します。

diff = diff[diff['c00'] >= 180]

これで、c00列の値が180以上のデータだけが抽出され、
新たなdiffに格納されます。

まとめ|比較演算は「データ型の一致」が基本

今回発生した**TypeError: ‘>=’ not supported between instances of ‘str’ and ‘int’**は、

  • 比較対象のデータ型が異なっていた(文字列型と整数型)
  • 事前に型を揃えることで解消できた

という流れでした。

Pythonでは、特にPandasを扱う際、
**型の自動推論(object型読み込み)**が原因でこの種のエラーが起こりやすいため、
必要に応じてastype()を使い、明示的に型を変換する習慣を持つと安心です。

型は難しいですが、確実に理解しておくと、
今後のデータ処理や分析作業が非常にスムーズになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。