私はPandasとPythonに比較的慣れていないので、Pandasデータフレームのすべてのコンテンツ(すべてのフィールドは文字列)をカテゴリカルコンテンツに変換する方法を見つけようとしています。
行と列のすべての値は、カテゴリカル番号に変換する前に、大きな一意のデータセットとして扱う必要があります。
これまでのところ、次のコードを書くことができました
for col_name in X.columns:
if(X[col_name].dtype == 'object'):
X[col_name]= X[col_name].astype('category')
X[col_name] = X[col_name].cat.codes
これは、複数の列のデータフレームXで機能します。文字列を受け取り、それらを一意の番号に変換します。
上記のコードについて私が確信していないのは、forループが列ごとにのみ機能し、割り当てられたコードが列ごとに一意であるか、データフレーム全体ごとに一意であるかがわからないことです(後者が望ましいアクションです)。
データフレームのすべての値を考慮して一意の番号を提供するようにコードを変換する方法についてアドバイスをいただけますか?
よろしくお願いします。よろしくアレックス
一意の値に設定するためにDataFrame.stack
withSeries.unstack
を使用しMultiIndex Series
ます。
cols = df.select_dtypes('object').columns
df[cols] = df[cols].stack().astype('category').cat.codes.unstack()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加