Пытаюсь отформатировать данные Google Analytics, готовые к машинному обучению, нужна помощь в циклическом просмотре списка значений и создании одинакового количества столбцов

#python #python-3.x #pandas #numpy #machine-learning

#python #python-3.x #pandas #numpy #машинное обучение

Вопрос:

В настоящее время я работаю с данными Analytics, которые отображают целевую страницу пользователей, и я уже сделал данные в гендерных и возрастных группах удобными для машинного обучения с помощью следующего метода:

 age = dataset.pop('ga:userAgeBracket')
gender = dataset.pop('ga:userGender')
dataset['18-24'] = (age == '18-24') * 1.0
dataset['25-34'] = (age == '25-34') * 1.0
dataset['35-44'] = (age == '35-44') * 1.0
dataset['45-54'] = (age == '45-54') * 1.0
dataset['55-64'] = (age == '55-64') * 1.0
dataset['65 '] = (age == '65 ') * 1.0
dataset['Male'] = (gender == 'male') * 1.0
dataset['Female'] = (gender == 'female') * 1.0
  

Этот метод отлично работает для данных, которые имеют всего несколько различных вариантов.

Однако ga:landingPagePath потенциально может содержать бесконечное количество точек данных, и мне было интересно, есть ли простой способ выполнить цикл через это и создать ту же структуру столбцов, что и у меня, с другими точками данных

Просто для справки, вот как выглядит набор данных после того, как я очистил столбец «пол и возраст»: введите описание изображения здесь

Количество уникальных URL-адресов для этого конкретного набора данных с установленным фильтром РЕГУЛЯРНЫХ выражений составляет около 70

Комментарии:

1. Уточняющий вопрос: Что вы подразумеваете под одинаковой структурой столбцов? Проблема, с которой вы столкнетесь в будущем, заключается в разреженности. Например, у вас может быть только 1 переход на редкую целевую страницу (и у вас их будет много). Вместо этого вы могли бы подумать о создании классов на основе пути к странице. Итак: example.com/books/book-1.html получил бы только класс «books». Мое мнение таково, что вам придется перенести данные URL в класс более высокого уровня.

2. Привет @Jarad, существует фильтр, предотвращающий появление непонятных URL-адресов при извлечении из Analytics, так что в общей сложности существует более 70 URL-адресов, для которых мне нужно создать столбцы

3. Знаете ли вы о pd.get_dummies()? Я полагаю, вы также могли бы использовать label_binarize от scikit-learn.