Как совместить две колонки и применить бинаризатор? - PullRequest
0 голосов
/ 01 июня 2019

Пробовал с помощью MultiLabelBinarizer и не работал

Для примера: категория устройства (имеет два значения - android и ios), браузер (3 значения chrome, safari и IE) - это два столбца ... Если естьзначение android в категории устройств и safari в столбце браузера, а затем в имени столбца binarizer androd_safari должно быть указано значение 1 ... Таким образом, будет 6 столбцов binarizer со значением 0 или 1

Do Iнужно написать свою собственную функцию или есть встроенные функции для работы с кадрами, которые я могу использовать

1 Ответ

0 голосов
/ 01 июня 2019

Существует несколько подходов к нормализации данных обучающего / тестового набора с использованием LocalEncoder, LabelBinarizer, но они применяются к одному столбцу

Чтобы создать бинаризацию на основе двух столбцов (для маркировки вашего набора данных), создайтевременный DataFrame и сделайте, как показано ниже:

import timeit
import numpy as np
import pandas as pd

def two_col_binarizer(df, col1, col2):
    start_time = timeit.default_timer()
    arcol1 = df[col1].unique()
    arcol2 = df[col2].unique()
    arbdc = np.empty((arcol1.size*arcol2.size), dtype=object)

    for i in range(arcol1.size):
        for j in range(arcol2.size):
            arbdc[i*arcol2.size+j] = arcol1[i]+arcol2[j]

    num_rows, num_cols = df.shape
    tempdf = pd.DataFrame(index=range(0, num_rows), columns = arbdc)
    tempdf = tempdf.fillna(0)

    for i in range(len(df.index)):
        tempdf.at[i, df['device.deviceCategory'][i]+df['device.browser'][i]] = 1

    print(timeit.default_timer() - start_time)
    return tempdf

# for example your training data set has devicecategory and browser columns
df=df.join(two_col_binarizer(df, 'devicecategory', 'browser'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...