提问人:Michel de Ruiter 提问时间:10/9/2023 更新时间:10/9/2023 访问量:57
使用写入时复制就地更改列
Change column in-place with copy-on-write
问:
我有一个很大的 DataFrame。我已经启用了 copy_on_write,预计这是 3.0 的默认值。我想限制某些列的值(就地)。喜欢这个:
import pandas as pd
pd.options.mode.copy_on_write = True
df = pd.DataFrame({'a': '.', 'x': [1, 2, 3]})
df['x'].clip(lower=0, inplace=True)
这给了我一个:ChainedAssignmentError
正在尝试在 DataFrame 或 Series 通过使用就地的链式赋值 方法。
使用 Copy-on-Write 模式时,此类就地方法从不 用于更新原始 DataFrame 或 Series,因为 我们设置值的中间对象始终表现为 复制。例如,在执行 时,尝试 使用,以执行 对原始对象进行就地操作。
df[col].method(value, inplace=True)
df.method({col: value}, inplace=True)
这应该如何工作?我尝试了最后一段中建议的变体和其他东西,但我一直收到错误。
答: 暂无答案
评论
inplace
assign
inplace