如何在pandas中创建数据框视图?

Ian*_*anS 12 python pandas

我有一个大型数据帧(10米行,40列,7GB内存).我想创建一个视图,以便为表达复杂的视图创建一个简写名称,而不向内存使用添加另外2-4 GB.换句话说,我宁愿输入:

df2
Run Code Online (Sandbox Code Playgroud)

比:

df.loc[complicated_condition, some_columns]
Run Code Online (Sandbox Code Playgroud)

文档指出,虽然使用.loc确保设置值修改原始数据帧,但仍无法保证返回的对象.loc是视图还是副本.

我知道我可以将条件和列列表分配给变量(例如df.loc[cond, cols]),但我通常很想知道是否可以创建数据帧的视图.


编辑:相关问题:

Era*_*gev 9

您通常无法返回视图。

您的答案在 pandas 文档中: return-a-view-versus-a-copy。

每当索引操作中涉及标签数组或布尔向量时,结果将是一个副本。使用单标签/标量索引和切片,例如 df.ix[3:6] 或 df.ix[:, 'A'],将返回一个视图。

在以下帖子中找到了这个答案:链接

  • 因此,对 topicstarter 问题的回答是“不,如果条件足够复杂(即包含一组标签),通常不可能创建熊猫数据框的视图”? (5认同)
  • 丢人现眼。`df_view=df_view.apply(...)` 比 `df.loc[ind1, ind2]=df.loc[ind1, ind2].apply(...)` 更清晰,并且更适合一行。 (2认同)