私は、pandas.DataFrame形式のデータを自動的に前処理するツールを開発してきました。この前処理ステップでは、連続的なデータとカテゴリ的なデータを別々に扱いたい。特に、私はのみカテゴリーデータに、例えば、OneHotEncoderを適用することができるようにしたいです。pandas.DataFrameの列がカテゴリ型であるかどうかを検出する優れたヒューリスティックは何ですか?
それでは、私たちはpandas.DataFrameを提供し、データフレーム内のデータについてのその他の情報を持っていないしていると仮定しましょう。 pandas.DataFrameの列がカテゴリであるかどうかを判断するために使用する優れたヒューリスティックは何ですか?
私の最初の考えは以下のとおりです。
1)列内の文字列(例えば、列のデータ型がobject
である)がある場合、その列は非常に可能性が含まれているカテゴリーデータ )であれば、いくつかの割合(例えば> = 20%)、列には連続データが含まれている可能性が非常に高い
1)
は正常に動作していますが、2)
は非常にうまく機能していません。私はより良いヒューリスティックが必要です。どのようにこの問題を解決しますか?
編集:誰かがなぜ2)
がうまく動作しなかったのかを説明するように依頼しました。列に連続した値がまだあるが、列に一意の値が多くないテストケースがいくつかありました。その場合、2)
のヒューリスティックは明らかに失敗しました。また、タイタニックデータセットの乗客名など、多くの固有値が数多くあるカテゴリの列がある問題もありました。そこに同じ列型の誤分類問題があります。
この質問はほぼ完全に定義されていないと思います。世界のすべてのデータセットに対する分布は何ですか?ルール1は、郵便サービスや電話帳などのために悲惨に失敗します。 –
[Benfordの法則](https://en.wikipedia.org/wiki/Benford%27s_law)を使用して、カテゴリデータから数値データを識別してください。 –
@ Barmaley.exeあなたはそのアイデアを具体化できますか? –