Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save hcferguson/c6079ce8bdb9b5131b40101e4c1d467e to your computer and use it in GitHub Desktop.
Save hcferguson/c6079ce8bdb9b5131b40101e4c1d467e to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"from astropy.table import Table\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"from random_groups import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Read in the table of people willing to play lunch roulette. This list has to have a column named 'name' and can have columns of other attributes, for example 'mondays', 'tuesdays', etc, indicating availability."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"t = Table.read('tst.txt',format='ascii.commented_header')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<Table length=16>\n",
"<table id=\"table4469001016\" class=\"table-striped table-bordered table-condensed\">\n",
"<thead><tr><th>name</th><th>day</th></tr></thead>\n",
"<thead><tr><th>str6</th><th>str9</th></tr></thead>\n",
"<tr><td>Harry</td><td>monday</td></tr>\n",
"<tr><td>Carl</td><td>monday</td></tr>\n",
"<tr><td>Ilana</td><td>monday</td></tr>\n",
"<tr><td>Katie</td><td>tuesday</td></tr>\n",
"<tr><td>Arfon</td><td>tuesday</td></tr>\n",
"<tr><td>Josh</td><td>wednesday</td></tr>\n",
"<tr><td>Vicky</td><td>monday</td></tr>\n",
"<tr><td>Dan</td><td>monday</td></tr>\n",
"<tr><td>Ken</td><td>tuesday</td></tr>\n",
"<tr><td>Iva</td><td>tuesday</td></tr>\n",
"<tr><td>Jason</td><td>monday</td></tr>\n",
"<tr><td>Bill</td><td>tuesday</td></tr>\n",
"<tr><td>Steve</td><td>wednesday</td></tr>\n",
"<tr><td>Susan</td><td>monday</td></tr>\n",
"<tr><td>Nelson</td><td>friday</td></tr>\n",
"<tr><td>Erik</td><td>tuesday</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table length=16>\n",
" name day \n",
" str6 str9 \n",
"------ ---------\n",
" Harry monday\n",
" Carl monday\n",
" Ilana monday\n",
" Katie tuesday\n",
" Arfon tuesday\n",
" Josh wednesday\n",
" Vicky monday\n",
" Dan monday\n",
" Ken tuesday\n",
" Iva tuesday\n",
" Jason monday\n",
" Bill tuesday\n",
" Steve wednesday\n",
" Susan monday\n",
"Nelson friday\n",
" Erik tuesday"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Select groups of between 4 and six people "
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"g = random_group(t,size=6,minsize=4)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"&lt;Table length=16&gt;\n",
"<table id=\"table4469085352\" class=\"table-striped table-bordered table-condensed\">\n",
"<thead><tr><th>name</th><th>groupid</th></tr></thead>\n",
"<thead><tr><th>str6</th><th>int32</th></tr></thead>\n",
"<tr><td>Iva</td><td>1</td></tr>\n",
"<tr><td>Ilana</td><td>1</td></tr>\n",
"<tr><td>Erik</td><td>1</td></tr>\n",
"<tr><td>Dan</td><td>1</td></tr>\n",
"<tr><td>Harry</td><td>1</td></tr>\n",
"<tr><td>Arfon</td><td>1</td></tr>\n",
"<tr><td>Ken</td><td>2</td></tr>\n",
"<tr><td>Steve</td><td>2</td></tr>\n",
"<tr><td>Susan</td><td>2</td></tr>\n",
"<tr><td>Katie</td><td>2</td></tr>\n",
"<tr><td>Jason</td><td>2</td></tr>\n",
"<tr><td>Bill</td><td>2</td></tr>\n",
"<tr><td>Nelson</td><td>3</td></tr>\n",
"<tr><td>Vicky</td><td>3</td></tr>\n",
"<tr><td>Carl</td><td>3</td></tr>\n",
"<tr><td>Josh</td><td>3</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table length=16>\n",
" name groupid\n",
" str6 int32 \n",
"------ -------\n",
" Iva 1\n",
" Ilana 1\n",
" Erik 1\n",
" Dan 1\n",
" Harry 1\n",
" Arfon 1\n",
" Ken 2\n",
" Steve 2\n",
" Susan 2\n",
" Katie 2\n",
" Jason 2\n",
" Bill 2\n",
"Nelson 3\n",
" Vicky 3\n",
" Carl 3\n",
" Josh 3"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Select from people who are available on Monday"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"g = random_group(t,subset=t['day'] == 'monday')"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"&lt;Table length=6&gt;\n",
"<table id=\"table4469086864\" class=\"table-striped table-bordered table-condensed\">\n",
"<thead><tr><th>name</th><th>groupid</th></tr></thead>\n",
"<thead><tr><th>str6</th><th>int32</th></tr></thead>\n",
"<tr><td>Vicky</td><td>1</td></tr>\n",
"<tr><td>Dan</td><td>1</td></tr>\n",
"<tr><td>Harry</td><td>1</td></tr>\n",
"<tr><td>Susan</td><td>1</td></tr>\n",
"<tr><td>Ilana</td><td>1</td></tr>\n",
"<tr><td>Jason</td><td>1</td></tr>\n",
"</table>"
],
"text/plain": [
"<Table length=6>\n",
" name groupid\n",
" str6 int32 \n",
"----- -------\n",
"Vicky 1\n",
" Dan 1\n",
"Harry 1\n",
"Susan 1\n",
"Ilana 1\n",
"Jason 1"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda env:astroconda35]",
"language": "python",
"name": "conda-env-astroconda35-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment