<p>您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reindex_like.html" rel="nofollow noreferrer">reindex-like</a>将两个数据帧的索引设置为“title”,使用<code>A</code>重新索引<code>B</code>,也可以使用普通<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reindex.html#pandas.DataFrame.reindex" rel="nofollow noreferrer">reindex</a>,然后重置索引:</p>
<pre><code>B.set_index("title").reindex_like(A.set_index("title")).reset_index()
title col2
0 tit12 i
1 tit22 g
2 tit21 h
3 tit42 b
4 tit41 c
5 tit45 a
6 tit33 e
7 tit36 d
8 tit32 f
</code></pre>
<p>您还可以使用<code>merge</code>:</p>
<pre><code>pd.merge(B, A["title"], how="right")
title col2
0 tit12 i
1 tit22 g
2 tit21 h
3 tit42 b
4 tit41 c
5 tit45 a
6 tit33 e
7 tit36 d
8 tit32 f
</code></pre>
<p>如果您想要索引,类似于@BENY接受的答案,您可以组合<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.take.html" rel="nofollow noreferrer">take</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.get_indexer_for.html" rel="nofollow noreferrer">get_indexer_for</a>-如果您的索引是唯一的,您可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.get_indexer.html" rel="nofollow noreferrer">get_indexer</a>:</p>
<pre><code>B.take(pd.Index(A.title).get_indexer_for(B.title))
title col2
0 tit12 i
2 tit22 g
1 tit21 h
8 tit45 a
6 tit41 c
7 tit42 b
4 tit33 e
3 tit32 f
5 tit36 d
</code></pre>