title: filling in missing data when group totals are known with python
body: <p>I've been given school testing data broken down by race that for privacy purposes masks group totals are that less than 10 (indicated in the data by **, if the value is 0 it's indicated by a .). I'm wondering that if I know the school totals and the race totals for the district is it possible to have python figure out the different permutations that would make the dataset complete? For example:</p>
  
  <pre><code>School    Race          Total_Students    Students_Proficient    Percent_Proficient
  1         White            141                 92                 65.2
  1         Black            55                  23                 41.8
  1         Hispanic         87                  36                 41.4
  1         More than 1      15                  **                 40.0
  1         Total            298                 157                52.7
  2         White            **                  **                 **
  2         Black            29                  15                 51.7
  2         Hispanic         **                  **                 **
  2         More than 1      **                  **                 **
  2         Total            38                  20                 52.6
  3         White            **                  **                 **
  3         Black            **                  **                 **
  3         More than 1      **                  **                 **
  3         Total            **                  **                 **
  District  White            2931                2305               78.6
  District  Black            2788                1664               59.7
  District  Hispanic         948                 602                63.5
  District  More than 1      338                 256                75.7
  District  Total            7005                4827               68.9
  </code></pre>
  
  <p>There are 150 some odd schools in the district, so I've only included a few here to illustrate. Obviously some values will be easy to determine, for example if I know the number of students and % Proficient I can get the number students who scored above 3. Also, there are some where just 1 racial category is unknown which can be easily determined knowing the school total. It's the others, that have multiple missing values (or all missing). So what I am curious is how I could get python to do something like return the number of possible solutions, or return a list of possible dataframe solutions. I realize that there will be multiple possible solutions so while the results won't be useful for the project I'm working on (I'm working on getting the unmasked data from the school) I'm more so curious how this could be done as I'm working to learn more python. Everything I've been able to find about missing data is more about filling in with group averages, etc, but I haven't seen anything that points me in the right direction for this.</p>
  
  <p>I should add I'm not looking for specifically the answer (although I'd take it) but at least some suggestions on how to approach.</p>