###前提・実現したいこと
UCI Machine Learingのサンプルデータ「Adult Data Set」データの前処理をしています。
(https://archive.ics.uci.edu/ml/datasets/adult)
データをデータフレームにして、目的変数「income_class」の値を
「<=50K」であれば「0」、「>50K」であれば「1」にしたいのですが
うまくいきません。
どこか間違っているかご教示ください。
###発生している問題・エラーメッセージ
データフレームの値を見て、if文で値に変換する関数を定義し、
applyでデータフレームに適用したのですが、うまく読めず、全て
例外(else:)として処理されます。
###該当のソースコード
#データ読み込み
df = pd.read_csv('adult.data', sep=',',header = None)
#列名の変更
df.columns = ['age','workclass','fnlwgt','education','education-num','marital-status','occupation','relationship','race','sex','capital-gain','capital-loss','hours-per-week','native-country','income_class']
#目的変数の取り出し
adults_target = df.income_class
#目的変数をデータフレーム化
adults_target = DataFrame(adults_target)
def incom(a):
'''文字を受け取って、値を返す'''
if a == '<=50K':
return 0
else:
return 1
adults_target['income_class'] = adults_target['income_class'].apply(incom)
###補足情報(言語/FW/ツール等のバージョンなど)
言語はpython3です。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/13 13:54