擅长:python、mysql、java
<p>您可以这样使用loc:</p>
<pre><code>df.loc[df["AKey"]==9999, "AKey"] = 8888
</code></pre>
<p>产生以下输出:</p>
<p><a href="https://i.stack.imgur.com/OtxfV.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OtxfV.png" alt="enter image description here"/></a></p>
<p>在使用原始代码时,首先要使用以下代码对数据帧进行切片:</p>
<pre><code>df.loc[df["AKey"]==9999]
</code></pre>
<p>然后为切片数据帧的列AKey赋值</p>
<pre><code>["AKey"]=8888
</code></pre>
<p>换句话说,您是在更新切片,而不是数据帧本身</p>
<p>来自熊猫<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html" rel="nofollow noreferrer">documentatiom</a>:</p>
<blockquote>
<p>.loc[] is primarily label based, but may also be used with a boolean
array.</p>
</blockquote>
<p>分解代码:</p>
<pre><code>df.loc[df["AKey"]==9999, "AKey"]
</code></pre>
<p>df[“AKey”]==9999将返回一个标识行的布尔数组,字符串“AKey”将标识将立即接收新值的列,而不进行切片</p>