使用 loc 命令替换值

2024-06-28

有一个数据框,我需要replace值高于 512 时为 263。

因此,我首先使用此代码行来过滤索引:

df.loc[df['Fare']>512]['Fare'].astype(int)

这是结果:

258     512
679     512
737     512
1234    512
Name: Fare, dtype: int64

这看起来不错!因为它过滤了值高于 512 的所有 4 行。 现在我需要用 263 替换这个值:

df.loc[df['Fare']>512]['Fare']=df.loc[df['Fare']>512]['Fare'].astype(int).replace({512:263},inplace=True)

但它不会改变我的数据框中的任何内容。 例如,当我搜索索引 737 时,我发现了以下内容:

df.iloc[737]

Result:

Age                                35
Fare                          512.329

因此,尽管有上述代码,票价并未更改为 263。


去除inplace = True option.

df.loc[df['Fare']>512]['Fare']=df.loc[df['Fare']>512]['Fare'].astype(int).replace({512:263})

或者干脆不分配。

df.loc[df['Fare']>512]['Fare'].astype(int).replace({512:263}, inplace=True)

来自替换文档 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.replace.html:

inplace : bool, 默认 False
如果为真,则到位。注意:这将修改该对象的任何其他视图(例如 DataFrame 中的列)。如果为 True,则返回调用者。

到目前为止,您正在就地修改数据框,但是赋值运算符=返回调用者,因此您正在使用原始值重写您的编辑。

EDIT

实际上在我的版本(pandas 0.24.0)中inplace = True它不返回任何内容,因此上面的粗体句子可能与版本相关(文档指的是 pandas 0.24.2)。

作为旁注,过滤数据.loc然后使用replace是多余的:.replace({512:263})仅转换值 512,无需在之前选择该值.loc.
如果你这样做:

df['Fare'].astype(int).replace({512:263}, inplace=True)

你会得到相同的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 loc 命令替换值 的相关文章

随机推荐

  • 进行 SendInput 时调用全局低级键盘钩子。如何预防?

    我有一个用 c 编写的 win 32 应用程序 它设置低级键盘挂钩 现在我想将输入发送到任何应用程序 例如单词 记事本 我该怎么做呢 我已经足够使用 findwindow sendmessage 了 对于所有这些 我需要了解编辑控件 找到编
  • Python Decimal 模块不适用于 uint64

    我正在尝试将 numpy uint64 由 numpy sum 输出 转换为小数 而不会丢失 Decimal 模块的精度 gt gt gt from decimal import Decimal gt gt gt import numpy
  • 如何在 // 注释中转义反斜杠

    我有一条以反斜杠结尾的评论 就像是 use Clang 警告我 这是多行注释 warning multi line comment Wcomment use 所以我尝试在末尾添加一些空格 但没有帮助 我可以以某种方式逃避反斜杠吗 问题的基础
  • 使用 XQuery 更新自动递增?

    Does XQuery更新支持自增属性 就像中的自增字段一样SQL 我在用着BaseX作为我的数据库 Given Christian Gr n 在 BaseX 邮件列表上的回答 https mailman uni konstanz de p
  • 为什么反斜杠出现两次?

    当我创建包含反斜杠的字符串时 它们会重复 gt gt gt my string why does it happen gt gt gt my string why does it happen Why 你所看到的是表示 of my stri
  • 在javascript中打开本地文件系统中的文件

    我正在寻找一种在 IE 和 Firefox 浏览器中使用 javascript 打开临时目录中的 xls 文件的方法 我尝试使用 JavaScript 如下所示 function openMe var newwindow window op
  • WPF 绑定无法与 int 类型的属性正常工作

    我拥有以下财产int输入我的视图模型 该模型绑定到TextBox 一切正常 TwoWay绑定工作正常 除了一种情况 如果我清除的值TextBox 属性设置器不会被调用 尽管值已被清除TextBox 属性仍保持先前的值 有人遇到过类似的问题吗
  • javascript 如何将对象深度绑定到新的“this”值

    我有一个值 它可能是一个原语或一个函数或一个递归地包含原语 函数 对象的对象 Given a theThis参数 我如何将可能在我的值内的所有函数深度绑定到theThis 我尝试过类似的东西 function deepBind o ths
  • 使用 Glide 进行缩放和遮罩

    我只是想看看是否有人可以为我指明正确的方向 以学习如何使用 Glide 来完成此任务 我们有一个包含内容的页面 内容显示为单个图像 想想 杂志页面的图像 在轻松阅读模式下 我想将第一块居中并缩放 文本内容并屏蔽其余内容 单击 下一步 时 我
  • 如何构建具有依赖关系的单元测试?

    给出以下简单示例 class MathObject object A completely superfluous class def add self a b return a b def multiply self a b result
  • T[] 和 T[*,*] 有什么区别?

    我的谷歌柔术让我失望了 问题在标题中 有什么区别T and T 我正在寻找 2 2 1 2 部分的答案 外行 或超级架构师 的简单英语解释和示例代码 链接到此区别的正式文档 额外奖励 指向定义此内容的 C 4 规范中的小节和页码 它不在第
  • Android 1.5:读取短信

    我正在为 Android 创建一个备份实用程序 我需要读取收件箱 发件箱和 dratfs 的内容 如何在 SDK v1 5 上实现这一点 有一个内容提供商 http developer android com guide topics pr
  • 如何让 PyC​​harm 识别 SQL 语句中的占位符?

    我正在使用 PyCharm 但此 SQL 语句有错误 SELECT FROM table WHERE id id s 代码语法检查说
  • React:在 TS 组件中使用 ES6 组件:TS2605:JSX 元素类型“xxx”不是 JSX 元素的构造函数

    我想在另一个 Typescript 组件中使用 ES6 React 组件 ES6 组件 class ModelViewer extends Component constructor props context super props co
  • Python套接字发生错误

    我写了这段代码 import socket host localhost port 3794 s socket socket socket AF INET socket SOCK DGRAM s setsockopt socket SOL
  • Delphi 使用 标记将 TXMLData 包装在 SOAP 请求中

    我使用 TXMLData 发送 XML Delphi 在请求中添加一个标签 我的代码如下 RequestData TXMLData Create RequestData LoadFromXML
  • 使用 contenteditable div 时隐藏移动设备上的软键盘

    我正在使用 contenteditable div 来创建由移动设备查看的页面 以获取某些内容的输入 我希望当用户按下 Enter 时隐藏软键盘 而不是在 div 中按 Enter 的正常操作 我第一次尝试让它工作看起来像这样 if eve
  • UTF-16-LE 文件的 Python 字符串替换

    Python 2 6 使用 Python string replace 似乎不适用于 UTF 16 LE 文件 我想到了2种方法 找到一个可以处理 Unicode 字符串操作的 Python 模块 将目标 Unicode 文件转换为 ASC
  • java 9模块的命名约定[重复]

    这个问题在这里已经有答案了 java 9 模块的命名约定是什么 假设我的包名称是me jasonyeo awesome project 每当我创建一个module info javaIDEA 中的文件 它会建议我命名它awesome pro
  • 使用 loc 命令替换值

    有一个数据框 我需要replace值高于 512 时为 263 因此 我首先使用此代码行来过滤索引 df loc df Fare gt 512 Fare astype int 这是结果 258 512 679 512 737 512 123