#python #pandas #demographics
#питон #панды #демография
Вопрос:
Я работаю с pandas в статистическом проекте, и у меня есть набор данных о населении, который я должен назначить из блоков отдельным участкам, вопрос в том, есть ли какой-либо метод, который я могу применить для заполнения определенного набора участков значениями без десятичных знаков, пока не будут получены полные значения совокупности блоков.
Входной фрейм данных выглядит следующим образом:
plot_id block_id block_pop
1 1 5
2 1 5
3 2 11
4 2 11
5 2 11
- Рассчитать количество участков по блокам:
group_1 = df.groupby('block_id')['plot_id'].count().reset_index().rename(columns = {'plot_id': 'n_plots'})
df = df.merge(group_1, on = 'block_id')
- Вычислить среднюю численность населения по участку (без остатка):
df['pop_mean'] = df['block_pop']//df['n_plots']
- Шаг, на котором я застрял, состоит в том, чтобы распределить остаток между некоторыми участками блоков в виде чисел int, а не float, заполняя общую совокупность блоков.
Ожидаемый результат — это что-то вроде:
plot_id block_id block_pop n_plots pop_mean final_plot_pop
1 1 5 2 2 3
2 1 5 2 2 2
3 2 11 3 3 4
4 2 11 3 3 4
5 2 11 3 3 3
Любая помощь будет очень признательна
Комментарии:
1. Входной набор данных? Это может быть полезно
2. Конечно! Это то же самое, что и ожидаемый столбец df без plot_pop
3. Я отредактировал вопрос, чтобы добавить входной набор данных, @wwnde, спасибо за ваше предложение
4. К чему приводит рассмотрение
plot_pop
?5. Я отредактировал вопрос, чтобы задать ваш комментарий, надеюсь, это поможет. Еще раз спасибо