擅长:python、mysql、java
<p>我想您可以使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.merge.html" rel="nofollow">^{<cd1>}</a>,然后分配列<code>index</code>:</p>
<pre><code>df1 = pd.merge(df[['SampleID']].reset_index(),
df[['ParentID']],
left_on='SampleID',
right_on='ParentID')
print (df1)
index SampleID ParentID
0 2 S20 S20
1 3 S30 S30
2 4 S40 S40
df['ParentID'] = df1['index']
df.fillna('', inplace=True)
print (df)
SampleID ParentID
0 S10 2
1 S10 3
2 S20 4
3 S30
4 S40
</code></pre>
<hr/>
<p>另一个使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.map.html" rel="nofollow">^{<cd3>}</a>和<code>dict</code>的解决方案,其中使用值交换密钥:</p>
^{pr2}$