我有一个名为df的熊猫数据框,其中有几列,其中一列称为“高度”。我想修改高于3的高度并将其替换为2。我使用了以下代码:
df.loc[df['height']>3,'height'] = 2
这没有做任何修改。
我使用以下代码:
df.loc[df['height']>3,['height']] = 2
这很好用。我有点理解,在第一个版本中,创建了df的副本版本,但是尚不清楚原因,我很奇怪让[]做出这样的更改。
有人可以解释发生了什么事吗?
答案 0 :(得分:0)
问题是您没有提供minimal, reproducible example,因此尝试帮助您成为一种猜测游戏:
假设您有一个简单的数据框,例如
Task List
然后,您的两条代码行都可以正常工作,除了第二个版本中完全不需要额外的索引运算符[],并且在两种情况下都没有x <- seq(-10, 10, 0.001)
fx <- function()
if(x < 0 ) {fx<- sin(x)
}
else if (x >= 0 && x < 2)
{
fx<- x^2
}
else if(x >= 2 )
{
fx<- 4*exp(x-2)
}
}
plot(x, fx)
涉及。