Looks like you're really close to where you want to be. table.stack(0)
will move the first level of the column index to the row index.
In [1]: import pandas as pd
In [2]: from StringIO import StringIO
In [3]: df = pd.read_csv(StringIO("""\
...: Application-Date Sub-Product Applications Acquisitions
...: 11/1/12 GP 1 1
...: 11/1/12 GPF 1 1
...: 11/2/12 GP 1 1
...: 11/2/12 GP 1 1
...: 11/2/12 GPF 1 1
...: 11/2/12 GPF 1 1
...: 11/3/12 GP 1 1
...: 11/3/12 GP 1 1
...: 11/3/12 GP 1 1
...: 11/3/12 GPF 1 1
...: 11/3/12 GPF 1 1
...: 11/3/12 GPF 1 1
...: """), sep='\s+', parse_dates=[0])
In [4]: table = df.pivot_table(values=['Acquisitions', 'Applications'],
...: rows='Sub-Product',
...: cols='Application-Date',
...: aggfunc=sum)
In [5]: table
Out[5]:
Applications Acquisitions
Application-Date 2012-11-01 2012-11-02 2012-11-03 2012-11-01 2012-11-02 2012-11-03
Sub-Product
GP 1 2 3 1 2 3
GPF 1 2 3 1 2 3
In [6]: table.stack(0)
Out[6]:
Application-Date 2012-11-01 2012-11-02 2012-11-03
Sub-Product
GP Applications 1 2 3
Acquisitions 1 2 3
GPF Applications 1 2 3
Acquisitions 1 2 3