<p>我将重构您的第二个数据帧(本质上,规范化您的数据库)。有点像</p>
<pre><code>user gid id
1 1 'fhj56'
1 1 'fg7uy8'
2 1 'glao0'
2 1 'rt56yu'
2 1 're23u'
3 1 'fhj56'
3 1 'ty67s'
3 1 'hgjl09'
</code></pre>
<p>然后,只需合并id列上的第一个和第二个数据帧。在</p>
^{pr2}$
<p>您可以排除某些id没有匹配名称的任何gid。在</p>
<pre><code>r[~r[gid].isin( r[r['names'] == None][gid].unique() )]
</code></pre>
<p>其中<code>r[r['names'] == None][gid].unique()</code>查找所有没有名称的gid,然后<code>r[~r[gid].isin( ... )]</code>只获取不在<code>isin</code>的列表参数中的条目。在</p>
<hr/>
<p>如果有更多的id组,第二个表可能看起来像</p>
<pre><code>user gid id
1 1 'fhj56'
1 1 'fg7uy8'
1 2 '1asdf3'
1 2 '7ada2a'
1 2 'asd341'
2 1 'glao0'
2 1 'rt56yu'
2 1 're23u'
3 1 'fhj56'
3 1 'ty67s'
3 1 'hgjl09'
</code></pre>
<p>相当于</p>
<pre><code>user values
1 ['fhj56','fg7uy8']
1 ['1asdf3', '7ada2a', 'asd341']
2 ['glao0','rt56yu','re23u']
3 ['fhj56','ty67s','hgjl09']
</code></pre>