Я пытаюсь создать и добавить фрейм данных на основе значения в предыдущем столбце фрейма данных и значений из другого фрейма данных.
Проблема, над которой я работаю, требует от меня создания случайного числа изОт 0 до 1 для 50 человек в течение 100 периодов времени. Каждый человек начинает с места x = 0 и может перемещаться между x = 0 и x = 1. Если число, которое они сгенерировали в этом периоде, больше 0,9, они переключают местоположения (поэтому, если они были в x = 0 в предыдущем периоде, они переместятся в x = 1; если они были в x = 1 в предыдущем периоде, онипереместится в х = 0). Если число не превышает 0,9, они остаются в том же месте, что и в предыдущий период времени. Я пытаюсь найти местоположение каждого человека для каждого периода времени.
Вот что у меня есть:
#First I generated a 50x100 dataframe of random numbers
rv = pd.DataFrame(np.random.uniform(low = 0.0, high = 1.0, size=(51, 100)), columns = range(1,101))
#print(rv)
#Next, I created a new dataframe that tells me whether the value in the random number dataframe is greater than 0.9
rv_2 = rv[rv > 0.9].notnull()
#rv_2
#this is where I am stuck right now
#First I made a dataframe where every individual starts at location x=0
rv_3 = pd.DataFrame(0, index = range(51), columns = range(1))
#Here I am trying to append the location of each individual for each time period
#I was trying to add a 1 in the rv_3 dataframe if the previous column had a 0 and the corresponding value in the rv_2 dataframe was true, and so on
for col in rv_2:
for i, row_value in rv_2[col].iteritems():
if rv_2[col][i] == True & rv_3[col][i-1] == 0:
rv_3[col][i] = 1
elif rv_2[col][i] == True & rv_3[col][i-1] == 1:
rv_3[col][i] = 1
else:
rv_3[col][i] = rv_3[col][i-1]
Заранее спасибо!