提问人:ProjectAvatar 提问时间:9/2/2023 更新时间:9/2/2023 访问量:82
我想使用 inplace=True vs df=df 的任何情况?
Any situation where I would want to use inplace=True vs df=df?
答:
0赞
Jiu_Zou
9/2/2023
#1
inplace=True,写入或编辑RAM中的原始数据,无需返回
inplace=False,在RAM中创建一个新的副本数据,并对其进行编辑,然后返回
评论
0赞
Ignatius Reilly
10/4/2023
OP似乎知道这一点。实际问题是是否使用与显式赋值(“仅编写 df=df 的标准方法”)inplace=True
3赞
mozway
9/2/2023
#2
如果多个名称指向同一个对象,则存在很大差异。 不能就地工作,它只是将副本重新分配给相同的名称。df = df.do_something()
下面是一个示例,演示了差异。
重新赋值 保持不变,它仍然指向原始对象和新输出。df
df2
df
df = pd.DataFrame({'col1': [1, float('nan'), 3]})
df2 = df
df = df.dropna()
print(df2)
col1
0 1.0
1 NaN
2 3.0
随着对象被修改到位。inplace=True
df = pd.DataFrame({'col1': [1, float('nan'), 3]})
df2 = df
df.dropna(inplace=True)
print(df2)
col1
0 1.0
2 3.0
在现实生活中,我真的没有看到一个用例可以保留对同一对象的多个引用。鉴于大熊猫的复杂性,有时很难跟踪视图和副本。我建议避免.事实上,对于大多数函数,都有关于删除此参数的讨论。inplace=True
评论
1赞
ProjectAvatar
9/2/2023
有趣的是,不知道 inplace 实际上可以产生这样的差异。感谢您的澄清。
上一个:通过迭代变量更新进行反向传播
下一个:Numpy 评估顺序
评论