2016-12-14 6 views
2

У меня есть CSV-файл, как это:Один горячего кодирование

text short_text category 
... ...  ... 

Я открыл файл и сохранен его в кадре данных панды, как так:

filepath = 'path/data.csv' 
train = pd.read_csv(filepath, header=0, delimiter=",") 

В категории полей для каждого запись содержит список категорий, который является строкой, и каждая категория, которая находится в одинарных кавычках, например:

['Adult' 'Aged' 'Aged 80 and over' 'Benzhydryl Compounds/*therapeutic use' 'Cresols/*therapeutic use' 'Double-Blind Method' 'Female' 'Humans' 'Male' 'Middle Aged' 'Muscarinic Antagonists/*therapeutic use' '*Phenylpropanolamine' 'Tolterodine Tartrate' 'Urinary Incontinence/*drug therapy'] 

Я хотел бы использовать Тхи s для машинного обучения, используя однострунное кодирование. Я понимаю, что могу реализовать это, используя scleit.preprocessing пакет scikit-learn, но я не уверен, как это сделать.

Примечание: У меня нет списка всех возможных категорий.

ответ

0

вы можете использовать, чтобы помочь pd.value_counts

df = pd.DataFrame(dict(
     text=list('ABC'), 
     short_text=list('XYZ'), 
     category=[list('abc'), list('def'), list('abefxy')] 
    )) 

df.category.apply(pd.value_counts).fillna(0).astype(int) 

enter image description here

или все вместе

pd.concat(
    [df.drop('category', 1), 
    df.category.apply(pd.value_counts).fillna(0).astype(int)], 
    axis=1 
) 

enter image description here