<p>首先对<code>MultiIndex</code>使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.stack.html" rel="nofollow noreferrer">^{<cd1>}</a>,然后通过<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.to_dict.html" rel="nofollow noreferrer">^{<cd3>}</a>转换为字典:</p>
<pre><code>d = df.stack().to_dict()
</code></pre>
<hr/>
<pre><code>print (d)
{('Coupe 1', 'Bell Bay'): 158, ('Coupe 1', 'Surrey Hills'): 194, ('Coupe 1', 'Smithton'): 10, ('Coupe 1', 'Hobart'): 49, ('Coupe 2', 'Bell Bay'): 156, ('Coupe 2', 'Surrey Hills'): 169, ('Coupe 2', 'Smithton'): 71, ('Coupe 2', 'Hobart'): 84, ('Coupe 3', 'Bell Bay'): 10, ('Coupe 3', 'Surrey Hills'): 186, ('Coupe 3', 'Smithton'): 101, ('Coupe 3', 'Hobart'): 163, ('Coupe 4', 'Bell Bay'): 47, ('Coupe 4', 'Surrey Hills'): 94, ('Coupe 4', 'Smithton'): 134, ('Coupe 4', 'Hobart'): 139, ('Coupe 5', 'Bell Bay'): 144, ('Coupe 5', 'Surrey Hills'): 61, ('Coupe 5', 'Smithton'): 135, ('Coupe 5', 'Hobart'): 56, ('Coupe 6', 'Bell Bay'): 27, ('Coupe 6', 'Surrey Hills'): 27, ('Coupe 6', 'Smithton'): 134, ('Coupe 6', 'Hobart'): 36, ('Coupe 7', 'Bell Bay'): 114, ('Coupe 7', 'Surrey Hills'): 4, ('Coupe 7', 'Smithton'): 143, ('Coupe 7', 'Hobart'): 113, ('Coupe 8', 'Bell Bay'): 71, ('Coupe 8', 'Surrey Hills'): 170, ('Coupe 8', 'Smithton'): 190, ('Coupe 8', 'Hobart'): 140, ('Coupe 9', 'Bell Bay'): 94, ('Coupe 9', 'Surrey Hills'): 54, ('Coupe 9', 'Smithton'): 73, ('Coupe 9', 'Hobart'): 128, ('Coupe 10', 'Bell Bay'): 46, ('Coupe 10', 'Surrey Hills'): 194, ('Coupe 10', 'Smithton'): 92, ('Coupe 10', 'Hobart'): 36}
</code></pre>
<p>通过使用<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html" rel="nofollow noreferrer">^{<cd4>}</a>进行词典理解,您的解决方案是可行的:</p>
<pre><code>I = df.index.tolist()
J = df.columns.values.tolist()
arcs = {(i, j):df.loc[i, j] for i in I for j in J}
</code></pre>