I.はじめに
データ・タイプがカテゴリ変数、Rの変動要因に対応するカテゴリパンダである、本明細書のために、によって表すことができるカテゴリを特徴付けるための変数は、カテゴリコンテンツに関連するなど、性別、血液型など、非常に類似していますそしてアプリケーションが導入されています。
第二に、作成とアプリケーション
2.1基本的な機能とアプリケーションのシナリオ
具体的な方法を導入する前に、我々は理解のタイプのカテゴリカルデータ型をパンダする必要があり、同様のカテゴリ変数R因子は、ソート処理を行ってもよいが、それは順番にでない場合、数値演算は、定義されましたむしろ、順次英数字字句順序よりも、一緒に決定し、以下のことを持っているシーンが適用されます。
1、効果的に変換されたメモリを節約することができ、そのカテゴリのタイプを使用して、可能な値の数を多数有し、文字列フィールドを繰り返します
図2に示すように、照合特別なフィールド、それらのタイプの語彙順序は、ユーザが所望するカテゴリの照合を得るために変換した後に使用することができずに、
2.2の方法を作成します
パンダは、次の方法で主にあるカテゴリのデータを作成します。
1、シリーズ、パラメータ渡さDTYPE =「カテゴリ」のデータ構造へ:
#直接カテゴリ型シリーズ作成 series_catのpd.Seriesを=(' B '、' D '、' C '、' A ' ]、DTYPE = ' カテゴリー' ) #のディスプレイシリーズ情報 series_cat
それはseries_catカテゴリの種類として見ることができますが、何の宣言順序はありませんし、ソートシリーズならば、まだ字句の順序であります:
series_cat.sort_values()
図2に示すように、データフレームのために、データ変換タイプを定義した後:
#データブロック作成 df_cat = pd.DataFrame({ ' VL ':[ ' A '、' C '、' B '、' D ' ] }) #のカテゴリなどのデータ型変換指定された列 df_cat [ ' VLを' ] = df_cat [ ' VL ' ] .astype(' カテゴリー' ) [df_cat ' VL ' ]
3、pd.Categorical()を使用して生成されたカテゴリデータ系列を変換し、またはデータフレームの内容を置き換えます。
categorical_ = pd.Categorical([ ' A '、' B '、' D '、' C ' ]、 カテゴリ = [ ' A '、' B '、' C '、' D ' ]) series_cat = pd.Series( categorical_) series_cat
categorical_ = pd.Categorical([ ' A '、' B '、' D '、' C ' ]、 カテゴリ = [ ' A '、' B '、' C '、' D ' ]) df_cat = pd.DataFrame( { ' V1 ' :categorical_ }) df_cat [ ' V1 ' ]
そしてpd.Categorical()は独立したカテゴリーデータを作成するための2つの新しい機能は、パラメータカテゴリで定義されたそのカテゴリの一つは、元のデータは、データカテゴリに表示された場合にはパラメータはありません、それは自動的にpd.nanに変換があります。
categorical_ = pd.Categorical([ ' A '、' B '、' D '、' C ' ]、 カテゴリ = [ ' B '、' C '、' D ' ]) df_cat = pd.DataFrame({ ' V1 ' :categorical_ }) df_cat [ ' V1 ' ]
さらにpd.Categoricalは()型パラメータBOOLは、順序付けられた真のために大きなカテゴリに小の定義された範囲がある提供されます。
categorical_ = pd.Categorical([ ' A '、' B '、' D '、' C ' ]、 カテゴリ = [ ' A '、' B '、' C '、' D ' ]、 順序付け = TRUE) df_cat = pd.DataFrame({ ' V1 ' :categorical_ }) df_catの[ 'V1" ]
図4は、使用中の既存のデータを変換するCategoricalDtype()pandas.api.types
CategoricalDtype()によって、我々は、CategoricalDtype()パラメータの種類によってカテゴリ他のタイプのデータからのデータにasType()変換プロセスを組み合わせて注文し、ショートボードの.astype(「カテゴリ」)を補うことができます(実際には.astype( 'カテゴリは、')(CategoricalDtypeを(カテゴリ=なしには、= Falseの注文))).astypeに相当します。
pandas.api.types インポートCategoricalDtype #创建数据框 df_cat = pd.DataFrame({ ' V1 ':[ ' A '、' C '、' B '、' D ' ] }) ネコ = CategoricalDtype(カテゴリ= [ ' A ' ' C ' ' B ' ]、 順序付け = TRUE) df_catの[ 'V1 "] = df_cat [ ' V1 ' ] .astype(CAT) df_cat [ ' V1 ' ]
2.3アプリケーション
カテゴリーデータ型は主に、カスタムオーダー、以下の例で使用され、我々は、データフレームのクラスを作成し、変数の数値を含む可変文字は以下のとおりです。
インポートのNPとしてnumpyの DF = pd.DataFrame({ ' クラス':np.random.choice([ ' A '、' B '、' C '、' D ' ]、10 )、 ' 値':np.random。均一(0,10,10 ) }) df.head()
得られた結果はアルファベット順のNATURALにソートクラス列に従っている場合:
df.sort_values(' クラス')
次のように独自のクラス定義のソートを行うためのカラムを通る結果が得られます。
pandas.api.types インポートCategoricalDtypeの 猫 = CategoricalDtype(カテゴリ= [ ' B '、' D '、' A '、' Cは' ]、 順序付け = true)を [DF ' クラス' ] =のDF [ ' クラス' ]。 astype(猫) df.sort_values(' クラス')
あなたは一時的に照合を変更したい場合は、.cat.reorder_categories()メソッドを使用することができます。
DF [ ' クラス' ] .cat.reorder_categories([ ' D '、' B '、' C '、' A ' ]、 順序付け = Trueを、 インプレース = TRUE) #の変化は、データ上書きするようにTrueに設定iinplaceパラメータ DFを。 sort_values(' クラス')
パンダ上のデータのカテゴリタイプがヒントの多くは、あるそれは一般的に、ここでそれらを繰り返すない使用されていないので、あなたは公式文書のパンダを見ることができるタイプミスならば、に興味があることは、この記事の内容全体だ、王がいることを指摘!