标题说了算。 StackOverflow 34884536的公认答案中,它说

您可以在此处找到有关问题性质的更长讨论,但主要内容是我们现在正在转向“写入时复制”行为,在这种行为中,无论何时切片,您都会获得一个新副本,你永远不必考虑视图。

...

最好的猜测是修复将在一年内完成——同时,恐怕一些 .copy() 可能是必要的,抱歉!

(回答 2016/01/20)

df.loc[] 现在是否返回“副本”? 还是为了安全起见,我还必须使用 .copy() 吗?

#1楼 票数:1

它返回一个副本。 您可以通过制作副本、通过 .loc 将索引分配给另一个变量、更改变量并注意原始帧没有更改来测试这一点。

稍微相关,但这里有更多信息: http : //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

#2楼 票数:0

它可能会返回副本或视图,具体取决于数据帧的底层结构。 为了安全起见,您应该使用 .copy()

那里给出了行为差异的一个很好的例子: 在 Pandas 中,.iloc 方法是否提供副本或视图?

  ask by brunston translate from so

未解决问题?本站智能推荐:

1回复

带有df.loc的Pandas/Python中的SettingWithCopyWarning消息

OBS:我花了几个小时在 SO、Pandas 文档和其他一些网站上搜索,但无法理解我的代码在哪里不起作用。 我的UDF: 重要的: isOutlier列不存在。 我现在正在这个函数中创建它。 indice列不存在。 我现在正在这个函数中创建它。 valor_unitario存在并且它是
2回复

pandas.DataFrame.loc,在新列中标记数据

我有一个像这样的熊猫数据框: 我想创建这个: 因此,等级< 3.5导致标签为0 ,等级在3.5和4.25之间导致标签为1 ,等级> 4.25导致标签为2 。 这是我到目前为止编写的代码: 我将标签1分配给3.5到4.25之间的排名值的第三行不起作用...如何使它起作用
2回复

df.loc[:,columns]和df.loc[:][columns]的区别

我想以这种方式使用MinMaxScaler规范化熊猫数据框的某些列: 虽然我这样做: 它没有就地完成, df也没有改变; 而当我这样做时: df的数字列就地更改, 那么, df.loc[:, ~]和df.loc[:][~]什么区别
1回复

df.loc和值计数

所以我试图获取列的第一个字母,然后获取该字母的值计数 然后只选择大于 50 的值 有没有一种方法可以在不创建新数据框的情况下完成此操作? 我试过这把它导致了一个错误。 谢谢
1回复

df.loc超过2个条件

我有一个这样的熊猫数据框: 如果要满足某些条件,我想创建一个具有某些值的新列。 问题是:这些是&和|多个条件| 。 我知道我只能在两个条件下执行此操作,然后再执行多个df.loc调用,但是由于我的实际数据集非常庞大,变量可以采用许多不同的值,因此我想知道是否可以在一个条件下执行
1回复

具有多索引的df.at与df.loc

我有一个关于df.loc和df.at之间关于带有 MultiIndex 的数据帧的差异的问题。 我一直在查看来自 stackoverflow 的一些精彩资源,但它似乎并没有阐明我的问题。 特别是这个... pandas .at 与 .loc (或者至少我不完全理解这里显示的内容)。 根据熊猫文档,
3回复

使用loc方法获取DataFrame的视图

我正在尝试使用loc方法获取 Pandas 数据帧的视图,但是当我修改原始数据帧时它没有按预期工作。 我想使用loc方法提取 DataFrame 的一行/切片,以便在对 DataFrame 进行修改时,切片反映更改。 让我们看看这个例子:import pandas as pdimport numpy
1回复

df.loc具有多个条件

我正在尝试在我的数据框中生成一个变量,该变量使用其他两个变量“小时”和“工作日?”说明指定时间是否处于高峰时段。当我运行代码时,它只显示“NaN”,有人可以指导我我的代码有什么问题? 我正在使用的代码可以在下面看到: