{ "metadata": { "name": "Pandas experiments" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import pandas as pd\n", "import numpy\n", "\n", "N = 100\n", "data = pd.DataFrame({\n", " 'A': numpy.random.randint(0, 5, N),\n", " 'B': numpy.random.randint(0, 3, N),\n", " 'X': numpy.random.rand(N),\n", " 'Y': numpy.random.rand(N),\n", "})" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "data.groupby(['A', 'B']).agg({'X': ['sum', 'count'], 'Y': ['sum', 'count']})" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
YX
sumcountsumcount
AB
00 1.049082 3 1.670366 3
1 5.578948 11 6.407933 11
2 1.228797 3 1.674203 3
10 0.970503 2 1.152771 2
1 2.410762 5 2.727062 5
2 5.685782 12 6.092611 12
20 1.065329 4 1.488982 4
1 4.147895 11 5.999030 11
2 4.694436 9 4.075007 9
30 4.446768 8 2.976906 8
1 1.600019 3 1.204319 3
2 5.457779 10 4.391731 10
40 2.109207 6 1.780748 6
1 3.242274 6 3.170702 6
2 2.669061 7 3.298991 7
\n", "
" ], "output_type": "pyout", "prompt_number": 15, "text": [ " Y X \n", " sum count sum count\n", "A B \n", "0 0 1.049082 3 1.670366 3\n", " 1 5.578948 11 6.407933 11\n", " 2 1.228797 3 1.674203 3\n", "1 0 0.970503 2 1.152771 2\n", " 1 2.410762 5 2.727062 5\n", " 2 5.685782 12 6.092611 12\n", "2 0 1.065329 4 1.488982 4\n", " 1 4.147895 11 5.999030 11\n", " 2 4.694436 9 4.075007 9\n", "3 0 4.446768 8 2.976906 8\n", " 1 1.600019 3 1.204319 3\n", " 2 5.457779 10 4.391731 10\n", "4 0 2.109207 6 1.780748 6\n", " 1 3.242274 6 3.170702 6\n", " 2 2.669061 7 3.298991 7" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "import datetime\n", "x = pd.Series(['1', '2', '3', numpy.nan])\n", "y = pd.Series(['1/1/2012', '1/1/2013'])\n", "y2 = y.apply(lambda v: pd.datetools.parse(v, dayfirst=True))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 } ], "metadata": {} } ] }