pandas DataFrame diagonal
<p>What is an efficient way to get the diagonal of a square <code>DataFrame</code>.  I would expect the result to be a <code>Series</code> with a <code>MultiIndex</code> with two levels, the first being the index of the <code>DataFrame</code> the second level being the columns of the <code>DataFrame</code>.</p>

<h1>Setup</h1>

<pre><code>import pandas as pd
import numpy as np

np.random.seed([3, 1415])
df = pd.DataFrame(np.random.rand(3, 3) * 5,
                  columns = list('abc'),
                  index = list('ABC'),
                  dtype=np.int64
                 )
</code></pre>

<p>I want to see this:</p>

<pre><code>print df.stack().loc[[('A', 'a'), ('B', 'b'), ('C', 'c')]]

A  a    2
B  b    2
C  c    3
</code></pre>