Впервые на python **
В настоящее время у меня базовая популяция, которую я старею и перегруппируюсь по возрастным категориям.То, что я хотел бы сделать, это добавить «новых» людей и удалить людей из этой базовой популяции в дополнение к их старению.
Например: у меня есть список возрастов: 22, 25, 27, 30, 35, 38 ... (и т. Д.), Которые отсортированы по бинам и подсчитаны:
<20 0
20 to 24 12
25 to 29 60
30 to 34 138
35 to 40 242
У меня также есть вектор «изменения», который по возрастной группе имеет сложения или вычитания, поэтому [0,12,-4,3,-2]
, поэтому количество новых категорий будет
<20 0
20 to 24 24
25 to 29 56
30 to 34 141
35 to 40 240
Что я хотел бы сделать, это картаэти изменения возвращаются к исходному набору данных, чтобы получить новый счет.Таким образом, на самом деле добавьте 12 человек в возрасте от 20 до 24 лет (случайным образом предпочтительно) и вычтите 4 строки из исходного набора данных случайным образом в возрасте от 30 до 34
План будет состоять в том, что это произойдет в цикле,и каждый год набор данных стареет, а затем делаются сложения или вычитания, а затем новый счет.
В настоящее время я могу пройти цикл старения населения и создать счетчик для каждого года, а также вытащить вектор изменения для каждого года, но я не уверен, как добавить людей в мое население, используя вектор изменениясуммы так, чтобы они были добавлены или вычтены в пределах определенного возрастного диапазона.
Это то, что я имею до сих пор ..
for i in range(years):
year=year+1
ages=ages+1
bins=pd.cut(ages.AGE,[0,20,24,29,34,39,44,49,54,59,64,69,150],labels=['<20','20 to 24','25 to 29','30 to 34','35 to 39', '40 to 45','45 to 49','50 to 54','55 to 59','60 to 64','65 to 69','>=70'],include_lowest=True)
count=ages.groupby(bins)['AGE'].agg('count')
change=np.array(change_vecs[change_vecs.columns[i]])
будет представлять собой новое население за каждый год, построенное из исходного населения.Где люди представлены их возрастом.