擅长:python、mysql、java
<pre><code>df
X Y
0 Company 1 Parent 1
1 NaN Parent 2
2 NaN Parent 3
3 Company 2 Parent 2
4 Company 3 Parent 3
5 NaN Parent 1
</code></pre>
<p>首先,您可以创建<code>Y</code>到<code>X</code>的映射。因此,您可以从表中删除<code>NaN</code>并将其转换为字典</p>
<pre><code>temp = df.dropna(axis=0, how='any')
temp
X Y
0 Company 1 Parent 1
3 Company 2 Parent 2
4 Company 3 Parent 3
map1 = pd.Series(temp['X'].values, index=temp['Y']).to_dict()
map1
{'Parent 1': 'Company 1', 'Parent 2': 'Company 2', 'Parent 3': 'Company 3'}
</code></pre>
<p>然后,您可以使用<code>Y</code>的映射<code>fillna</code>。它只会影响其为NaN的值</p>
<pre><code>df['X'] = df['X'].fillna(df['Y'].map(map1))
df
X Y
0 Company 1 Parent 1
1 Company 2 Parent 2
2 Company 3 Parent 3
3 Company 2 Parent 2
4 Company 3 Parent 3
5 Company 1 Parent 1
</code></pre>