Pandas:了解鍊式賦值
鍊式賦值,顧名思義,涉及對 Pandas 物件執行的一系列賦值。這些賦值修改物件的資料而不建立新的副本。然而,這種行為有時會導致意外結果和SettingWithCopy警告。
鍊式分配如何運作?
分配給 Pandas Series 或 DataFrame 時,分配會建立對原始物件的引用而不是建立新的副本。因此,對 Series 或 DataFrame 的後續分配會修改原始物件。
鍊式分配問題
在下列情況下,鍊式分配可能會出現問題:
在這些情況下,修改可能不會反映在原始物件中,從而導致混亂和錯誤。
修正警告
要解SettingWithCopyWarning,建議為運算子指定 inplace 參數。例如:
<code class="python">data['amount'] = data['amount'].astype(float, inplace=True)</code>
這可確保直接對原始物件進行修改,而無需建立副本。
鍊式分配的替代方法
為了避免潛在的問題,最好處理原始物件的副本。這可以透過將操作結果指派給新變數來實現:
<code class="python">temp = data['amount'].fillna(data.groupby('num')['amount'].transform('mean')) data['amount'] = temp</code>
關閉警告
如果需要,可以關閉SettingWithCopy警告使用:
<code class="python">pd.set_option('chained_assignment', None)</code>
以上是鍊式賦值何時會導致 Pandas 出現問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!