присвоение частичных значений набору объектов в наборе данных, охватывающих общее значение без десятичных знаков и остатков в python

#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    
 
  1. Рассчитать количество участков по блокам:
     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')
 
  1. Вычислить среднюю численность населения по участку (без остатка):

    df['pop_mean'] = df['block_pop']//df['n_plots']

  2. Шаг, на котором я застрял, состоит в том, чтобы распределить остаток между некоторыми участками блоков в виде чисел 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. Я отредактировал вопрос, чтобы задать ваш комментарий, надеюсь, это поможет. Еще раз спасибо