Last active
August 29, 2015 14:00
-
-
Save krischer/11368243 to your computer and use it in GitHub Desktop.
Pandas Particle Grouping
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "", | |
| "signature": "sha256:e7aad82d7e6a200e7cb5f47fb8a0596598609da8577c1d4e1ee3a6299fd236a8" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "%pylab inline\n", | |
| "import pprint\n", | |
| "import numpy as np\n", | |
| "import pandas as pd" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Populating the interactive namespace from numpy and matplotlib\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 15 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "df = pd.read_csv(\"./trackingbac_track.csv\")\n", | |
| "# Rename.\n", | |
| "df.columns = [\"timestamp\", \"particle no\", \"x\", \"y\", \"field strength\", \"field direction\", \"zoom id\"]\n", | |
| "df[:10]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "html": [ | |
| "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>timestamp</th>\n", | |
| " <th>particle no</th>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th>field strength</th>\n", | |
| " <th>field direction</th>\n", | |
| " <th>zoom id</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 0</td>\n", | |
| " <td> 89</td>\n", | |
| " <td> 236</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 147.9090</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 1</td>\n", | |
| " <td> 46</td>\n", | |
| " <td> 203</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 338.5450</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 2</td>\n", | |
| " <td> 450</td>\n", | |
| " <td> 452</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 38.8182</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 3</td>\n", | |
| " <td> 553</td>\n", | |
| " <td> 429</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 82.4545</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 4</td>\n", | |
| " <td> 632</td>\n", | |
| " <td> 169</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 102.2730</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 5</td>\n", | |
| " <td> 464</td>\n", | |
| " <td> 288</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 102.2730</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 6</td>\n", | |
| " <td> 374</td>\n", | |
| " <td> 248</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 63.3636</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 7</td>\n", | |
| " <td> 298</td>\n", | |
| " <td> 261</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 167.7270</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 8</td>\n", | |
| " <td> 138</td>\n", | |
| " <td> 349</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 317.7270</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td> 446</td>\n", | |
| " <td> 9</td>\n", | |
| " <td> 509</td>\n", | |
| " <td> 252</td>\n", | |
| " <td> 1.8</td>\n", | |
| " <td> 13.2727</td>\n", | |
| " <td> 20</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>10 rows \u00d7 7 columns</p>\n", | |
| "</div>" | |
| ], | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 3, | |
| "text": [ | |
| " timestamp particle no x y field strength field direction zoom id\n", | |
| "0 446 0 89 236 1.8 147.9090 20\n", | |
| "1 446 1 46 203 1.8 338.5450 20\n", | |
| "2 446 2 450 452 1.8 38.8182 20\n", | |
| "3 446 3 553 429 1.8 82.4545 20\n", | |
| "4 446 4 632 169 1.8 102.2730 20\n", | |
| "5 446 5 464 288 1.8 102.2730 20\n", | |
| "6 446 6 374 248 1.8 63.3636 20\n", | |
| "7 446 7 298 261 1.8 167.7270 20\n", | |
| "8 446 8 138 349 1.8 317.7270 20\n", | |
| "9 446 9 509 252 1.8 13.2727 20\n", | |
| "\n", | |
| "[10 rows x 7 columns]" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 3 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "grouped = df.groupby([\"particle no\", \"field strength\"])\n", | |
| "print \"Available groups:\"\n", | |
| "pprint.pprint(sorted(grouped.groups.keys()))" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Available groups:\n", | |
| "[(0, 1.8),\n", | |
| " (1, 1.8),\n", | |
| " (2, 1.8),\n", | |
| " (3, 1.8),\n", | |
| " (4, 1.8),\n", | |
| " (5, 1.8),\n", | |
| " (6, 1.8),\n", | |
| " (7, 1.8),\n", | |
| " (8, 1.8),\n", | |
| " (9, 1.8),\n", | |
| " (10, 1.8),\n", | |
| " (11, 1.8),\n", | |
| " (12, 1.8)]\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "for group_name, group in grouped:\n", | |
| " x = group[\"x\"]\n", | |
| " y = group[\"y\"]\n", | |
| " time = group[\"timestamp\"]\n", | |
| " \n", | |
| " if np.abs(np.diff(x)).sum() + np.abs(np.diff(y)).sum() < 1000:\n", | |
| " continue\n", | |
| " \n", | |
| " group.plot(x=\"x\", y=\"y\", title=group_name)\n", | |
| " plt.show()" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x1137da8d0>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 43 | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment