<p>假设您有2个df,如下所示:</p>
<pre><code>import pandas as pd
df1 = pd.DataFrame([[1,3],[5,4],[6,7]], columns = ['PN','name'])
df2 = pd.DataFrame([[2,22],[3,33],[4,44],[5,55]], columns = ['oldname','newname'])
</code></pre>
<p>df1型:</p>
<pre><code> PN oldname
0 1 3
1 5 4
2 6 7
</code></pre>
<p>df2型:</p>
<pre><code> oldname newname
0 2 22
1 3 33
2 4 44
3 5 55
</code></pre>
<p>在它们之间运行左连接:</p>
<pre><code>temp = df1.merge(df2,'left',left_on='name',right_on='oldname')
</code></pre>
<p>温度:</p>
<pre><code> PN name oldname newname
0 1 3 3.0 33.0
1 5 4 4.0 44.0
2 6 7 NaN NaN
</code></pre>
<p>然后计算新的<code>name</code>列并替换它:</p>
<pre><code>df1['name'] = temp.apply(lambda row: row['newname'] if pd.notnull(row['newname']) else row['name'], axis=1)
</code></pre>
<p>df1型:</p>
<pre><code> PN name
0 1 33.0
1 5 44.0
2 6 7.0
</code></pre>
<p>或者,作为一行:</p>
<pre><code>df1['name'] = df1.merge(df2,'left',left_on='name',right_on='oldname').apply(lambda row: row['newname'] if pd.notnull(row['newname']) else row['name'], axis=1)
</code></pre>