Я пытаюсь создать фрейм данных, который добавляет 1 к предыдущей строке в столбце, пока не будет выполнено условие. В этом случае, я хочу продолжать добавлять строки до столбца «AGE» = 100.Добавить (и рассчитать) строки в dataframe до тех пор, пока не будет выполнено условие:
import pandas as pd
import numpy as np
RP = {'AGE' : pd.Series([10]),
'SI' : pd.Series([60])}
RPdata = pd.DataFrame(RP)
i = RPdata.tail(1)['AGE']
RPdata2 = pd.DataFrame()
while [i < 100]:
RPdata2['AGE'] = i + 1
RPdata2['SI'] = RPdata.tail(1)['SI']
RPdata = pd.concat([RPdata, RPdata2], axis = 0)
break
print RPdata
Результаты
Age SI
0 10 60
0 11 60
Я понимаю, что заявление перерыв мешает несколько итераций, но цикл, как представляется, без него.
Я пытаюсь достичь:
Age SI
0 10 60
0 11 60
0 12 60
0 13 60
0 14 60
. . 60
0 100 60
Есть ли способ сделать это с помощью цикла в то время? Должен ли я вместо этого использовать решение for loop?
Спасибо Randy C. Я дал ему попробовать, уступая .. ValueError: Значение истины серии неоднозначно, используйте a.empty, a.bool(), a.item(), a.any(), или a.all(). Я добавил [], чтобы избежать этого. Я попробовал ([i <100]), но не повезло. (Просто бесконечный цикл, как вы сказали). – kharn
'i = RPdata.tail (1) ['AGE']' инициализирует i как pd.Series с одним значением в нем. Вы можете сделать 'i = RPdata ['AGE']. Iloc [-1]', чтобы вместо этого получить значение 10. –
Прошу прощения, я не знаю, как правильно форматировать результаты печати в разделе комментариев. Возраст не читается как 11, как должно, но я = = 10. – kharn