<p>我对自己的问题有了一个新的答案(基于罗曼最初的答案)。关键是要得到所需维度的索引。例如</p>
<pre><code>rating.columns.names = ["Brand"]
rating.index.names = ["n"]
print rating
Brand BMW Fiat Toyota
n
0 7 2 3
1 8 1 8
2 9 10 7
3 8 3 9
own.columns.names = ["Brand"]
own.index.names = ["n"]
print own
Brand BMW Fiat Toyota
n
0 1 1 0
1 0 1 1
2 0 0 1
3 0 1 1
merged = pd.merge(own.unstack().reset_index(name="Own"),
rating.unstack().reset_index(name="Rating"))
print merged
Brand n Own Rating
0 BMW 0 1 7
1 BMW 1 0 8
2 BMW 2 0 9
3 BMW 3 0 8
4 Fiat 0 1 2
5 Fiat 1 1 1
6 Fiat 2 0 10
7 Fiat 3 1 3
8 Toyota 0 0 3
9 Toyota 1 1 8
10 Toyota 2 1 7
11 Toyota 3 1 9
</code></pre>
<p>然后很容易使用<code>pivot_table</code>命令将其转换为所需的结果:</p>
<pre><code>print merged.pivot_table(rows="Brand", cols="Own", values="Rating")
Own 0 1
Brand
BMW 8.333333 7
Fiat 10.000000 2
Toyota 3.000000 8
</code></pre>
<p>这就是我要找的。再次感谢罗曼指路。</p>