【发布时间】:2017-10-09 03:50:39
【问题描述】:
在pandas 库中,很多时候都有一个选项可以就地更改对象,例如使用以下语句...
df.dropna(axis='index', how='all', inplace=True)
我很好奇当inplace=True 被传递与inplace=False 时返回什么以及如何处理对象。
当inplace=True时,所有操作都修改self吗?而当inplace=False是立即创建的新对象如new_df = self然后返回new_df?
【问题讨论】:
-
是的,
inplace=True返回Noneinplace=False返回执行操作的对象副本。文档对此非常清楚,是否有与特定部分混淆的东西?特别是If True, do operation inplace and return None. -
我正在对 DataFrame 对象进行子类化,并且使用诸如合并之类的操作似乎无法就地执行它...
self = self.merge(new_df, how='left', on='column2'我不确定是否可以重新分配自我跨度> -
DataFrame.merge 没有
inplace参数是正确的。它返回一个 DataFrame,所以重新分配没有问题。 -
有人能在资源消耗方面突出使用它的优势吗?
-
@markroxor 真的不多。在少数情况下,
inplace操作可能会更快一些,因为您实际上不必返回结果的副本。但仅此而已。不使用它的理由还有很多。