<p><strong>编辑特定行:<code>DataFrame.loc</code>与<code>Series.where</code></strong></p>
<p>编辑<code>DataFrame</code>对象的特定行(“切片”)的标准选项是<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html" rel="nofollow noreferrer">^{<cd4>}</a>。在</p>
<p>接受的答案使用了一个简洁的应用程序<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.where.html" rel="nofollow noreferrer">^{<cd5>}</a>重写<code>df.Country</code>系列,对于这个特定的任务来说,这个系列更加简洁。在</p>
<p><strong>重新编码值:<code>.apply</code>与<code>.map</code></strong></p>
<p>您可以使用<code>.map()</code>直接用字典重新编码序列—不需要<code>.apply()</code>lambda函数。在</p>
<p><strong>示例</strong></p>
<pre><code># Example data
df = pd.DataFrame({'Country': ['unknown', 'USA', 'unknown', 'UK', 'USA', 'unknown'],
'City': ['London', 'New York', 'New York', 'London', 'New York', 'Paris']
})
city2country_mapping = {'London': 'UK', 'New York': 'USA', 'Paris': 'France'}
# print(df)
# Country City
# 0 unknown London
# 1 USA New York
# 2 unknown New York
# 3 UK London
# 4 USA New York
# 5 unknown Paris
df.loc[df.Country == 'unknown', 'Country'] = df[df.Country == 'unknown'].City.map(city2country_mapping)
print(df)
</code></pre>
<p>输出:</p>
^{pr2}$