前提・実現したいこと
pandasのdf.columnsにより列名のみを抽出したいのですが、"dtype"が入ってしまいます。
列名のみを、文字列の配列として取り出す方法はありますでしょうか。
> print(df.columns[df.mean()>2]) Index(['b', 'c'], dtype='object')
具体的に書くと、category_encodersを用いて、df.columnsで抽出した列名を用いてカテゴリ特徴量を作りたいのですが、df.columnsで抽出するとうまくいきません。
該当のソースコード
python
1import pandas as pd 2import category_encoders as ce 3 4df = pd.DataFrame([[1,2,3],[2,3,4]], columns=['a','b','c']) 5 6list_cols = df.columns[df.mean()>2] 7#list_cols = ['b','c'] こっちだとエラーなく成功する 8 9ce_ohe = ce.OneHotEncoder(cols=list_cols) 10df_session = ce_ohe.fit_transform(df)
エラーメッセージ
/Applications/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in __nonzero__(self) 1620 Index(['a', 'b', 'c'], dtype='object') 1621 """ -> 1622 self._validate_index_level(level) 1623 return self 1624 ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
試したこと
上記のソースコード中の、"こっちだとエラーなく成功する"のリストを使うとうまくいきます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/12 07:14