”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Pandas 什么时候创建视图而不是副本?

Pandas 什么时候创建视图而不是副本?

发布于2024-11-06
浏览:434

When Does Pandas Create a View vs a Copy?

Pandas 视图与副本生成规则

Pandas 在决定 DataFrame 上的切片操作是否产生视图或结果时采用特定规则复制。通过了解这些规则,您可以优化数据操作并避免意外行为。

从始终生成副本的操作开始:

  1. 所有操作,除了那些专门设计用于修改的操作就地 DataFrame,创建副本。
  2. 只有某些操作支持 inplace=True 参数,该参数允许直接在原始 DataFrame 中进行修改。

接下来,让我们考虑操作可能会导致视图:

  1. 设置值(例如 .loc、.iloc、.iat 和 .at)的索引器就地操作,修改原始 DataFrame 而不创建副本。
  2. 从单一数据类型对象检索数据的索引器通常会创建一个视图,除非基础内存布局排除了这种优化。
  3. 相反,从多数据类型对象检索数据的索引器总是创建一个副本。

关于您的示例:

  • df.query('2
  • df.iloc[3] = 70 和 df.ix[1, 'B':'E'] = 222 更改 df,因为它们访问单 dtype 对象并就地设置值。
  • df[df.C
  • 但是,df[df.C

要根据查询修改特定值,请使用正确的 loc 语法:

df.loc[df.C 

通过遵守这些规则,您可以清楚地了解 Pandas 何时生成视图或副本,从而确保在 Python 脚本中进行高效的数据操作。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3