Преобразование набора данных в набор данных Reward / Miss в Python - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу преобразовать следующий набор данных (CSV), используя Pandas и NumPy в Python :

Таблица 1 (csv)

Ads, Impressions, Clicks
Ad_1, 11, 1
Ad_2, 10, 2

в

Таблица 2 (csv)

Ad_1, Ad_2
0, 0
0, 0
0, 0
0, 1
0, 0
1, 0
0, 0
0, 0
0, 1
0, 0
0

В таблице 2 в основном показывается общее количество строк со случайной вставкой 1 (количество = кликов).

Преобразованная таблица должна быть запущенаОптимизация CTR для двух наборов объявлений с использованием алгоритма Upper Confidence Bound с использованием машинного обучения.Пожалуйста, помогите, как преобразовать таблицу 1 в таблицу 2.

Спасибо!

1 Ответ

0 голосов
/ 28 декабря 2018

Я думаю, что это должно сработать:

import pandas as pd
import numpy as np
from io import StringIO

TESTDATA = StringIO("""Ads,Impressions,Clicks
Ad_1, 11, 1
Ad_2, 10, 2
    """)

table_1 = pd.read_csv(TESTDATA, sep=",")

def convert(row):
    clicks_to_generate = row['Clicks']
    array_len = row['Impressions']
    ad = np.zeros(array_len)
    ad[:clicks_to_generate] = 1
    np.random.shuffle(ad) # you want it random
    return ad

ads = table_1.apply(convert, axis=1)
series_list = [pd.Series(ad) for ad in ads]
table_2 = pd.DataFrame(series_list).T
table_2 = table_2.add_prefix('Ad_')
print(table_2)

    Ad_0  Ad_1
0    0.0   0.0
1    1.0   0.0
2    0.0   1.0
3    0.0   1.0
4    0.0   0.0
5    0.0   0.0
6    0.0   0.0
7    0.0   0.0
8    0.0   0.0
9    0.0   0.0
10   0.0   NaN

table_2.to_csv('table_2.csv', index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...