Pandas 视图与副本生成规则
Pandas 在决定 DataFrame 上的切片操作是否产生视图或结果时采用特定规则复制。通过了解这些规则,您可以优化数据操作并避免意外行为。
从始终生成副本的操作开始:
- 所有操作,除了那些专门设计用于修改的操作就地 DataFrame,创建副本。
- 只有某些操作支持 inplace=True 参数,该参数允许直接在原始数据中进行修改DataFrame。
接下来,让我们考虑可能会产生视图的操作:
- 设置值的索引器,例如 .loc、.iloc、.iat 和 .DataFrame。 at,就地操作,修改原始 DataFrame 而不创建副本。
- 从 DataFrame 检索数据的索引器单数据类型对象通常会创建一个视图,除非底层内存布局阻止这种优化。
- 相反,从多数据类型对象检索数据的索引器总是创建一个副本。
关于您的示例:
- df.query('2
- df.iloc[3] = 70 和 df.ix[1, 'B':'E'] = 222 更改 df 因为它们访问单 dtype 对象并就地设置值。
- df[df.C
- 但是,df[df.C
要根据查询修改特定值,请使用正确的 loc 语法:
通过遵守这些规则,您可以清楚地了解 Pandas 何时生成视图或副本,确保 Python 脚本中高效的数据操作。
以上是Pandas 什么时候创建视图而不是副本?的详细内容。更多信息请关注PHP中文网其他相关文章!