Dataframe.sample - Веса - Как его использовать? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть такая ситуация: есть вероятность 0,1348, вычисленная в переменной с именем treat_conv

Теперь я пытаюсь создать кадр данных из исходного кадра данных, используя эту вероятность, чтобы вывести определенный столбец,Это возможно?Я пытаюсь использовать weights, но безуспешно.Может быть, я использую это неправильно?

Следуйте моему коду:

weights = np.array(treat_conv) #creating a array with treat_conv new_page_converted = df2.sample(n = treat_group.shape[0], weights=df2.converted(weights)) #creating new dataframe with the number of rows of treat_group and the column converted must have a 0.13 of chance to bring value 1

Итак, код работает, если я использую только n.Он создает новый фрейм данных с правильным количеством строк.Но я не могу получить правильную вероятность, чтобы в столбце converted было указано определенное количество значения 1.

Надеюсь, мои объяснения не могут быть объяснены.Спасибо!

1 Ответ

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

Вы можете сделать что-то вроде этого

import pandas as pd
import numpy as np


df = pd.DataFrame(data=np.arange(0, 100, 1), columns=["SomeValue"])
selected = pd.DataFrame(data=np.random.choice(df["SomeValue"], int(len(df["SomeValue"]) * 0.13), replace=False),
                        columns=["SomeValue"])
selected["Trigger"] = 1
df = df.merge(selected, how="left", on="SomeValue")
df["Trigger"].fillna(0, inplace=True)

"df" - это ваш оригинальный DataFrame.Затем выберите случайные 13% значений и добавьте столбец, указывающий, что они были выбраны.Наконец, объедините все обратно в ваш оригинальный Dataframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...