Создание нового кадра данных на основе значений в другом кадре данных - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать и добавить фрейм данных на основе значения в предыдущем столбце фрейма данных и значений из другого фрейма данных.

Проблема, над которой я работаю, требует от меня создания случайного числа изОт 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]

Заранее спасибо!

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