首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas Dataframe :为什么df.loc[df[ 'height'] >3,‘height’]=2和df.loc[df['height']>3,[‘height’]=2之间存在差异

Pandas Dataframe :为什么df.loc[df[ 'height'] >3,‘height’]=2和df.loc[df['height']>3,[‘height’]=2之间存在差异
EN

Stack Overflow用户
提问于 2020-04-11 19:08:20
回答 1查看 82关注 0票数 1

我有一个名为df的熊猫数据帧,它有几列,其中一列被称为“高度”。我想修改大于3的高度,并将它们替换为2。我使用了以下代码:

代码语言:javascript
运行
复制
df.loc[df['height']>3,'height'] = 2

这不会做任何修改。

我使用以下代码:

代码语言:javascript
运行
复制
df.loc[df['height']>3,['height']] = 2

这可以很好地工作。我在某种程度上理解,在第一个版本中,创建了df的副本版本,但是,不清楚为什么,我很奇怪让[]做出这样的改变。

有人能解释一下发生了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-11 21:05:06

问题是您没有提供minimal, reproducible example,因此尝试帮助您变成了一种猜测游戏:

假设您有一个简单的数据帧,比如

代码语言:javascript
运行
复制
import pandas as pd
df = pd.DataFrame({'height':range(6)})

然后,您的两个代码行都工作得很好,除了第二个版本中的额外索引操作符是完全不必要的,并且在这两种情况下都不涉及copy version of df

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61155786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档