Skip to content

Instantly share code, notes, and snippets.

@jrjames83
Created February 3, 2018 21:31
Show Gist options
  • Save jrjames83/990c6f873c047bac51ba32db0d2129b8 to your computer and use it in GitHub Desktop.
Save jrjames83/990c6f873c047bac51ba32db0d2129b8 to your computer and use it in GitHub Desktop.
Project Euler 42 in Python / Pandas (at the end of the notebook)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = [1,2,3,-9,5,7,-99,2,8] # Should be 12\n",
"# What are the indices "
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def max_subarr_brute(input_array):\n",
" global_max = 0\n",
" indices = []\n",
" for x in range(len(input_array)+1):\n",
" for j in range(len(input_array)+1):\n",
" if data[x:j]:\n",
" current_max = sum(input_array[x:j])\n",
" # print(current_max, data[x:j])\n",
" if current_max > global_max:\n",
" global_max = current_max\n",
" indices.append((x, j-1))\n",
" return global_max, indices.pop()"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(12, (4, 5))"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_subarr_brute(data)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"840"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# O n ^2 n log n, n\n",
"132 + 226 + 197 + 13 + 272"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-101 132 226 197 13 272 -56 -152 -54 287]\n",
"CPU times: user 151 µs, sys: 118 µs, total: 269 µs\n",
"Wall time: 163 µs\n"
]
},
{
"data": {
"text/plain": [
"(865, (1, 9))"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"\n",
"val = np.random.randint(-200, 300, size=10)\n",
"print(val)\n",
"%time max_subarr_brute(val)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 6.57 ms, sys: 690 µs, total: 7.26 ms\n",
"Wall time: 6.7 ms\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jeff/anaconda/envs/3point6/lib/python3.6/site-packages/ipykernel/__main__.py:1: DeprecationWarning: This function is deprecated. Please call randint(-200, 300 + 1) instead\n",
" if __name__ == '__main__':\n"
]
},
{
"data": {
"text/plain": [
"(6435, (0, 90))"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time max_subarr_brute(np.random.random_integers(-200, 300, size=100))"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jeff/anaconda/envs/3point6/lib/python3.6/site-packages/ipykernel/__main__.py:1: DeprecationWarning: This function is deprecated. Please call randint(-200, 300 + 1) instead\n",
" if __name__ == '__main__':\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 511 ms, sys: 8.3 ms, total: 520 ms\n",
"Wall time: 566 ms\n"
]
},
{
"data": {
"text/plain": [
"(46106, (2, 999))"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time max_subarr_brute(np.random.random_integers(-200, 300, size=1000))"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jeff/anaconda/envs/3point6/lib/python3.6/site-packages/ipykernel/__main__.py:1: DeprecationWarning: This function is deprecated. Please call randint(-200, 300 + 1) instead\n",
" if __name__ == '__main__':\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 48.2 s, sys: 223 ms, total: 48.4 s\n",
"Wall time: 48.8 s\n"
]
},
{
"data": {
"text/plain": [
"(508677, (0, 9997))"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time max_subarr_brute(np.random.random_integers(-200, 300, size=10000))"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.98696989446\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1140e8748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Law of large numbers\n",
"\n",
"# Take samples from any random distribution\n",
"import numpy as np\n",
"import random\n",
"\n",
"shape, scale = 2., 2. # mean=4, std=2*sqrt(2)\n",
"s = np.random.gamma(shape, scale, 100000)\n",
"print(np.mean(s))\n",
"import matplotlib.pyplot as plt\n",
"import scipy.special as sps\n",
"plt.hist(s)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADUdJREFUeJzt3X+o3fV9x/Hnq9G5zbpVyV3IkribQjbQweK4hA1LsZVV\nV8diYUiEFRlC+ocTC4UR+0+7PwIZrO32xxTS6hqYbRbaimFxFs2E4h9Vb5yrJhoaNGJCNLfrRnV/\nOBLf++N+bc80N/fce+7xe/Lx+YDLPedzvt/7feegz5x87/mRqkKS1K4P9T2AJGm8DL0kNc7QS1Lj\nDL0kNc7QS1LjDL0kNc7QS1LjDL0kNc7QS1LjLup7AIDVq1fX9PR032NI0gXl0KFDP6mqqcW2m4jQ\nT09PMzs72/cYknRBSfLKMNt56kaSGmfoJalxhl6SGmfoJalxhl6SGmfoJalxhl6SGmfoJalxhl6S\nGjcRr4zVhWN6x4Fejnt81029HFdqgY/oJalxhl6SGmfoJalxhl6SGmfoJalxhl6SGmfoJalxhl6S\nGmfoJalxhl6SGmfoJalxhl6SGmfoJalxhl6SGmfoJalxi4Y+yYYkjyc5kuRwkru69S8nOZnk2e7r\n0wP73J3kWJKjSW4Y5x9AknR+w3zwyBngC1X1TJLLgENJHu1u+1pV/e3gxkmuArYBVwO/CTyW5Ler\n6uxKDi5JGs6ij+ir6lRVPdNdfgN4AVh3nl22Anur6q2qehk4BmxZiWElSUu3pHP0SaaBa4Anu6U7\nk/woyf1JLu/W1gGvDux2gvP/xSBJGqOhQ5/kw8B3gc9X1c+Ae4GPApuBU8BXlnLgJNuTzCaZnZub\nW8qukqQlGCr0SS5mPvIPVNX3AKrq9ao6W1VvA1/nF6dnTgIbBnZf3639P1W1u6pmqmpmampqlD+D\nJOk8hnnWTYD7gBeq6qsD62sHNvsM8Hx3eT+wLcklSTYCm4CnVm5kSdJSDPOsm2uBzwLPJXm2W/si\ncGuSzUABx4HPAVTV4ST7gCPMP2PnDp9xI0n9WTT0VfUEkHPc9PB59tkJ7BxhLknSCvGVsZLUOEMv\nSY0z9JLUOEMvSY0z9JLUOEMvSY0b5nn0Uu+mdxzo7djHd93U27GlleAjeklqnKGXpMYZeklqnKGX\npMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZ\neklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYtGvokG5I8nuRIksNJ7urWr0jyaJIfd98vH9jn7iTH\nkhxNcsM4/wCSpPMb5hH9GeALVXUV8AfAHUmuAnYAB6tqE3Cwu0532zbgauBG4J4kq8YxvCRpcYuG\nvqpOVdUz3eU3gBeAdcBWYE+32R7g5u7yVmBvVb1VVS8Dx4AtKz24JGk4Fy1l4yTTwDXAk8CaqjrV\n3fQasKa7vA744cBuJ7q1d/+s7cB2gCuvvHIpY3zgTe840PcIki4gQ/8yNsmHge8Cn6+qnw3eVlUF\n1FIOXFW7q2qmqmampqaWsqskaQmGCn2Si5mP/ANV9b1u+fUka7vb1wKnu/WTwIaB3dd3a5KkHgzz\nrJsA9wEvVNVXB27aD9zWXb4NeGhgfVuSS5JsBDYBT63cyJKkpRjmHP21wGeB55I82619EdgF7Ety\nO/AKcAtAVR1Osg84wvwzdu6oqrMrPrkkaSiLhr6qngCywM3XL7DPTmDnCHNJklaIr4yVpMYZeklq\nnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGX\npMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZeklqnKGXpMYZ\neklq3KKhT3J/ktNJnh9Y+3KSk0me7b4+PXDb3UmOJTma5IZxDS5JGs4wj+i/Cdx4jvWvVdXm7uth\ngCRXAduAq7t97kmyaqWGlSQt3aKhr6ofAD8d8udtBfZW1VtV9TJwDNgywnySpBGNco7+ziQ/6k7t\nXN6trQNeHdjmRLcmSerJckN/L/BRYDNwCvjKUn9Aku1JZpPMzs3NLXMMSdJilhX6qnq9qs5W1dvA\n1/nF6ZmTwIaBTdd3a+f6GburaqaqZqamppYzhiRpCMsKfZK1A1c/A7zzjJz9wLYklyTZCGwCnhpt\nREnSKC5abIMk3wauA1YnOQF8CbguyWaggOPA5wCq6nCSfcAR4AxwR1WdHc/okqRhLBr6qrr1HMv3\nnWf7ncDOUYaSJK0cXxkrSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLU\nOEMvSY0z9JLUuEXf1Ez6oJvecaCX4x7fdVMvx1V7fEQvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLU\nOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY1bNPRJ7k9yOsnzA2tXJHk0\nyY+775cP3HZ3kmNJjia5YVyDS5KGM8wj+m8CN75rbQdwsKo2AQe76yS5CtgGXN3tc0+SVSs2rSRp\nyRYNfVX9APjpu5a3Anu6y3uAmwfW91bVW1X1MnAM2LJCs0qSlmG55+jXVNWp7vJrwJru8jrg1YHt\nTnRrkqSejPzL2KoqoJa6X5LtSWaTzM7NzY06hiRpAcsN/etJ1gJ030936yeBDQPbre/W3qOqdlfV\nTFXNTE1NLXMMSdJilhv6/cBt3eXbgIcG1rcluSTJRmAT8NRoI0qSRnHRYhsk+TZwHbA6yQngS8Au\nYF+S24FXgFsAqupwkn3AEeAMcEdVnR3T7JKkISwa+qq6dYGbrl9g+53AzlGGkiStHF8ZK0mNM/SS\n1DhDL0mNM/SS1DhDL0mNM/SS1DhDL0mNM/SS1DhDL0mNM/SS1DhDL0mNW/S9brSw6R0H+h5Bkhbl\nI3pJapyhl6TGGXpJapyhl6TGGXpJapyhl6TGGXpJapyhl6TGGXpJapyhl6TGGXpJapyhl6TGGXpJ\napyhl6TGGXpJapyhl6TGGXpJatxInzCV5DjwBnAWOFNVM0muAP4ZmAaOA7dU1X+NNqYkablW4hH9\nJ6pqc1XNdNd3AAerahNwsLsuSerJOE7dbAX2dJf3ADeP4RiSpCGNGvoCHktyKMn2bm1NVZ3qLr8G\nrDnXjkm2J5lNMjs3NzfiGJKkhYx0jh74WFWdTPIbwKNJXhy8saoqSZ1rx6raDewGmJmZOec2kqTR\njfSIvqpOdt9PAw8CW4DXk6wF6L6fHnVISdLyLTv0SS5Nctk7l4FPAc8D+4Hbus1uAx4adUhJ0vKN\ncupmDfBgknd+zreq6pEkTwP7ktwOvALcMvqYkqTlWnboq+ol4PfOsf6fwPWjDCVJWjmj/jJW0phM\n7zjQ27GP77qpt2Nr5fkWCJLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMv\nSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOEMvSY0z9JLUOD9hStJ79PXpVn6y1Xj4iF6SGmfoJalx\nTZy66fNDlCVp0vmIXpIaZ+glqXGGXpIaZ+glqXGGXpIaZ+glqXFjC32SG5McTXIsyY5xHUeSdH5j\neR59klXAPwB/BJwAnk6yv6qOjON4ktrgWy+Mx7heMLUFOFZVLwEk2QtsBQy9pInT54su34+/ZMZ1\n6mYd8OrA9RPdmiTpfdbbWyAk2Q5s766+meRoX7P0aDXwk76HmGDePwvzvlnYBXXf5G9G2v23htlo\nXKE/CWwYuL6+W/u5qtoN7B7T8S8ISWaraqbvOSaV98/CvG8W5n3zXuM6dfM0sCnJxiS/BGwD9o/p\nWJKk8xjLI/qqOpPkL4HvA6uA+6vq8DiOJUk6v7Gdo6+qh4GHx/XzG/GBPnU1BO+fhXnfLMz75l1S\nVX3PIEkaI98CQZIaZ+h7kOSXkzyV5D+SHE7y133PNGmSrEry70n+pe9ZJkmS40meS/Jsktm+55kk\nST6S5DtJXkzyQpI/7HumSdHERwlegN4CPllVbya5GHgiyb9W1Q/7HmyC3AW8APxa34NMoE9U1QXz\nPPH30d8Dj1TVn3XP9vvVvgeaFD6i70HNe7O7enH35S9LOknWAzcB3+h7Fl0Ykvw68HHgPoCq+t+q\n+u9+p5ochr4n3amJZ4HTwKNV9WTfM02QvwP+Cni770EmUAGPJTnUvbpc8zYCc8A/dqf8vpHk0r6H\nmhSGvidVdbaqNjP/quEtSX6375kmQZI/AU5X1aG+Z5lQH+v+u/lj4I4kH+97oAlxEfD7wL1VdQ3w\nP4Bvj94x9D3r/nn5OHBj37NMiGuBP01yHNgLfDLJP/U70uSoqpPd99PAg8y/U6zm3zjxxMC/jL/D\nfPiFoe9FkqkkH+ku/wrz79v/Yr9TTYaquruq1lfVNPNvnfFvVfXnPY81EZJcmuSydy4DnwKe73eq\nyVBVrwGvJvmdbul6fFv0n/NZN/1YC+zpPqDlQ8C+qvJphFrMGuDBJDD//+63quqRfkeaKHcCD3TP\nuHkJ+Iue55kYvjJWkhrnqRtJapyhl6TGGXpJapyhl6TGGXpJapyhl6TGGXpJapyhl6TG/R9Cew2H\nHjdMvAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x113716908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"samples = [ np.mean(random.choices(s, k=20)) for _ in range(1000) ]\n",
"plt.hist(samples)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"np.random.gamma?"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.43 s, sys: 34.3 ms, total: 1.47 s\n",
"Wall time: 1.53 s\n"
]
}
],
"source": [
"# Finding the area of a circle through simulation?\n",
"import math\n",
"import random\n",
"\n",
"def dart_throw_simulator(radius, runs):\n",
" hits = 0\n",
" for run in range(runs):\n",
" rand_x = random.uniform(-2,2)\n",
" rand_y = random.uniform(-2,2)\n",
" c_squared = (rand_x ** 2) + (rand_y ** 2)\n",
" outcome = math.sqrt(c_squared)\n",
" if outcome < radius:\n",
" hits += 1\n",
" hit_ratio = hits / runs\n",
" total_area_square = (2*radius)**2\n",
" return hit_ratio * total_area_square\n",
"\n",
"%time assert(dart_throw_simulator(2, 100000) > 12 and dart_throw_simulator(2, 1000000) < 13)"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"['A',\n",
" 'ABILITY',\n",
" 'ABLE',\n",
" 'ABOUT',\n",
" 'ABOVE',\n",
" 'ABSENCE',\n",
" 'ABSOLUTELY',\n",
" 'ACADEMIC',\n",
" 'ACCEPT',\n",
" 'ACCESS']"
]
},
"execution_count": 182,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import requests\n",
"\n",
"url = 'https://projecteuler.net/project/resources/p042_words.txt'\n",
"r = requests.get(url)\n",
"data = r.text.split(\",\")\n",
"data = [x.strip().replace('\"', \"\") for x in data]\n",
"data[:10]"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1786, 1)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>word</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABILITY</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABLE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ABOUT</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ABOVE</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" word\n",
"0 A\n",
"1 ABILITY\n",
"2 ABLE\n",
"3 ABOUT\n",
"4 ABOVE"
]
},
"execution_count": 187,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame(data)\n",
"df.columns = ['word']\n",
"print(df.shape)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>word</th>\n",
" <th>word_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>A</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABILITY</td>\n",
" <td>78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABLE</td>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ABOUT</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ABOVE</td>\n",
" <td>45</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" word word_score\n",
"0 A 1\n",
"1 ABILITY 78\n",
"2 ABLE 20\n",
"3 ABOUT 59\n",
"4 ABOVE 45"
]
},
"execution_count": 200,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import string\n",
"\n",
"def convert_word_to_indices(row):\n",
" score = 0\n",
" for char in row:\n",
" score += string.ascii_lowercase.index(char.lower()) + 1\n",
" return score\n",
"\n",
"df['word_score'] = df['word'].map(convert_word_to_indices)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 1786.000000\n",
"mean 72.318029\n",
"std 31.237586\n",
"min 1.000000\n",
"25% 49.000000\n",
"50% 68.000000\n",
"75% 91.000000\n",
"max 192.000000\n",
"Name: word_score, dtype: float64"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"convert_word_to_indices(\"SKY\")\n",
"df['word_score'].describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# get our triangle numbers\n",
"# tn = ½n(n+1);\n",
"# 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ..."
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tris = []\n",
"for x in range(200):\n",
" tris.append(.50 * x * (x + 1))"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['has_match'] = df['word_score'].map(lambda x: x in tris)"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>word</th>\n",
" <th>word_score</th>\n",
" <th>has_match</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>A</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABILITY</td>\n",
" <td>78</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABLE</td>\n",
" <td>20</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ABOUT</td>\n",
" <td>59</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ABOVE</td>\n",
" <td>45</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ABSENCE</td>\n",
" <td>49</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ABSOLUTELY</td>\n",
" <td>132</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ACADEMIC</td>\n",
" <td>39</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ACCEPT</td>\n",
" <td>48</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>ACCESS</td>\n",
" <td>50</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>ACCIDENT</td>\n",
" <td>59</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>ACCOMPANY</td>\n",
" <td>91</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>ACCORDING</td>\n",
" <td>74</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>ACCOUNT</td>\n",
" <td>77</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ACHIEVE</td>\n",
" <td>53</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>ACHIEVEMENT</td>\n",
" <td>105</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>ACID</td>\n",
" <td>17</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>ACQUIRE</td>\n",
" <td>74</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>ACROSS</td>\n",
" <td>75</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>ACT</td>\n",
" <td>24</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>ACTION</td>\n",
" <td>62</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>ACTIVE</td>\n",
" <td>60</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>ACTIVITY</td>\n",
" <td>109</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>ACTUAL</td>\n",
" <td>58</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>ACTUALLY</td>\n",
" <td>95</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>ADD</td>\n",
" <td>9</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>ADDITION</td>\n",
" <td>76</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>ADDITIONAL</td>\n",
" <td>89</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>ADDRESS</td>\n",
" <td>70</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>ADMINISTRATION</td>\n",
" <td>166</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1756</th>\n",
" <td>WITHIN</td>\n",
" <td>83</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1757</th>\n",
" <td>WITHOUT</td>\n",
" <td>116</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1758</th>\n",
" <td>WOMAN</td>\n",
" <td>66</td>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1759</th>\n",
" <td>WONDER</td>\n",
" <td>79</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1760</th>\n",
" <td>WONDERFUL</td>\n",
" <td>118</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1761</th>\n",
" <td>WOOD</td>\n",
" <td>57</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1762</th>\n",
" <td>WORD</td>\n",
" <td>60</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1763</th>\n",
" <td>WORK</td>\n",
" <td>67</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1764</th>\n",
" <td>WORKER</td>\n",
" <td>90</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1765</th>\n",
" <td>WORKING</td>\n",
" <td>97</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1766</th>\n",
" <td>WORKS</td>\n",
" <td>86</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1767</th>\n",
" <td>WORLD</td>\n",
" <td>72</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1768</th>\n",
" <td>WORRY</td>\n",
" <td>99</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1769</th>\n",
" <td>WORTH</td>\n",
" <td>84</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1770</th>\n",
" <td>WOULD</td>\n",
" <td>75</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1771</th>\n",
" <td>WRITE</td>\n",
" <td>75</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1772</th>\n",
" <td>WRITER</td>\n",
" <td>93</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1773</th>\n",
" <td>WRITING</td>\n",
" <td>100</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1774</th>\n",
" <td>WRONG</td>\n",
" <td>77</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1775</th>\n",
" <td>YARD</td>\n",
" <td>48</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1776</th>\n",
" <td>YEAH</td>\n",
" <td>39</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1777</th>\n",
" <td>YEAR</td>\n",
" <td>49</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1778</th>\n",
" <td>YES</td>\n",
" <td>49</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1779</th>\n",
" <td>YESTERDAY</td>\n",
" <td>122</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1780</th>\n",
" <td>YET</td>\n",
" <td>50</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1781</th>\n",
" <td>YOU</td>\n",
" <td>61</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1782</th>\n",
" <td>YOUNG</td>\n",
" <td>82</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1783</th>\n",
" <td>YOUR</td>\n",
" <td>79</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1784</th>\n",
" <td>YOURSELF</td>\n",
" <td>121</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1785</th>\n",
" <td>YOUTH</td>\n",
" <td>89</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1786 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" word word_score has_match\n",
"0 A 1 True\n",
"1 ABILITY 78 True\n",
"2 ABLE 20 False\n",
"3 ABOUT 59 False\n",
"4 ABOVE 45 True\n",
"5 ABSENCE 49 False\n",
"6 ABSOLUTELY 132 False\n",
"7 ACADEMIC 39 False\n",
"8 ACCEPT 48 False\n",
"9 ACCESS 50 False\n",
"10 ACCIDENT 59 False\n",
"11 ACCOMPANY 91 True\n",
"12 ACCORDING 74 False\n",
"13 ACCOUNT 77 False\n",
"14 ACHIEVE 53 False\n",
"15 ACHIEVEMENT 105 True\n",
"16 ACID 17 False\n",
"17 ACQUIRE 74 False\n",
"18 ACROSS 75 False\n",
"19 ACT 24 False\n",
"20 ACTION 62 False\n",
"21 ACTIVE 60 False\n",
"22 ACTIVITY 109 False\n",
"23 ACTUAL 58 False\n",
"24 ACTUALLY 95 False\n",
"25 ADD 9 False\n",
"26 ADDITION 76 False\n",
"27 ADDITIONAL 89 False\n",
"28 ADDRESS 70 False\n",
"29 ADMINISTRATION 166 False\n",
"... ... ... ...\n",
"1756 WITHIN 83 False\n",
"1757 WITHOUT 116 False\n",
"1758 WOMAN 66 True\n",
"1759 WONDER 79 False\n",
"1760 WONDERFUL 118 False\n",
"1761 WOOD 57 False\n",
"1762 WORD 60 False\n",
"1763 WORK 67 False\n",
"1764 WORKER 90 False\n",
"1765 WORKING 97 False\n",
"1766 WORKS 86 False\n",
"1767 WORLD 72 False\n",
"1768 WORRY 99 False\n",
"1769 WORTH 84 False\n",
"1770 WOULD 75 False\n",
"1771 WRITE 75 False\n",
"1772 WRITER 93 False\n",
"1773 WRITING 100 False\n",
"1774 WRONG 77 False\n",
"1775 YARD 48 False\n",
"1776 YEAH 39 False\n",
"1777 YEAR 49 False\n",
"1778 YES 49 False\n",
"1779 YESTERDAY 122 False\n",
"1780 YET 50 False\n",
"1781 YOU 61 False\n",
"1782 YOUNG 82 False\n",
"1783 YOUR 79 False\n",
"1784 YOURSELF 121 False\n",
"1785 YOUTH 89 False\n",
"\n",
"[1786 rows x 3 columns]"
]
},
"execution_count": 207,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"False 1624\n",
"True 162\n",
"Name: has_match, dtype: int64"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['has_match'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 162"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:3point6]",
"language": "python",
"name": "conda-env-3point6-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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment