あるサイトでcategory_mappingで数値変換対応表を作るコードを参考にしておりますが、
「cannot unpack non-iterable int object」というエラーが出てしまいます。
エラー文を検索してもいいヒントが見つからず困っています。
カテゴリー列をOrdinal Encoderで数値変換した対応表を作成したいと思っております。
他にいい方法があれば、この方法にこだわっている訳ではありません。
colの出力が
{'col': '出身校', 'mapping': 大阪大学 1
神戸大学 2
岡山大学 3
山口大学 4
徳島大学 5
となっており、mapping列にある「〇〇大学」と「数字」を別々の変数(label、ord_um)に
格納して表示させたいのですが、この記述だと入れられないという事です。
アドバイスいただけますと幸いです。
df = pd.read_csv(url) useful_features = [c for c in df.columns if c not in (id)] categorical_cols = [c for c in useful_features if df[c].dtype == 'object'] ce_oe = ce.OrdinalEncoder(cols=categorical_cols,handle_unknown='impute') df[categorical_cols] = ce_oe.fit_transform(df[categorical_cols]) #変換項目の対応表を作成(ここの記述に関してのご相談です) def get_ordinal_mapping(encoding_instance): map_list = [] for col in ce_oe.category_mapping: for (label, ord_num) in col['mapping']: map_list.append([col['col'], label, ord_num]) map_df = pd.DataFrame(map_list, columns=['column', 'label', 'ord_num']) return map_df get_ordinal_mapping(ce_oe)
TypeError Traceback (most recent call last)
~\AppData\Local\Temp\4/ipykernel_55428/1328553831.py in <module>
46 # map_df = pd.DataFrame(map_list, columns=['column', 'label', 'ord_num'])
47
---> 48 get_ordinal_mapping(ce_oe)
49
50 # ce_oe_map = ce_oe.category_mapping
~\AppData\Local\Temp\4/ipykernel_55428/1328553831.py in get_ordinal_mapping(encoding_instance)
34 map_list = []
35 for col in ce_oe.category_mapping:
---> 36 for (label, ord_num) in col['mapping']:
37 map_list.append([col['col'], label, ord_num])
38 map_df = pd.DataFrame(map_list, columns=['column', 'label', 'ord_num'])
TypeError: cannot unpack non-iterable int object
あなたの回答
tips
プレビュー