Я уже видел этот вопрос , и я знаю numpy.random.choice
, но мой вопрос немного отличается.
Учитывая, что у меня есть набор данных, как показано ниже:
dict ={"Number of polyps":[10,8,3,1,2,6,13],
"Right ":[3,2,3,1,0,3,3],
"Left":[2,2,4,15,6,7,1] }
dt = pd.DataFrame(dict)
Итак, это:
Number of polyps Right Left
10 3 2
8 2 2
3 3 4
1 1 15
2 0 6
6 3 7
13 3 1
Мне нужно заполнить столбцы Right
и Left
на следующие требования
- Сумма
Right
и Left
равно Number of polyps
- Значения
Right
и Left
получены из взвешенной вероятности их текущего значения
Например,для данной строки, как показано ниже:
Number of polyps Right Left
10 3 2
, поэтому для этой строки она может быть такой, как показано ниже. Здесь 0.6= 3/(3+2)
и 0.4= 2/(3+2)
:
nr = np.random.choice(["Right","Left"],size=10, replace=True,p=[0.6,0.4])
rightCount = list.count('Right')
leftCount = list.count('Left')
print(rightCount)
print(leftCount)
После обновления этот ряд будет:
Number of polyps Right Left
10 3 7
Проблема в том, что я должен сделать это для всехстроки в наборе данных, но я не уверен, как это сделать!