pandas:索引数据帧时的多个条件 - 意外行为

2024-01-07

我正在按两列中的值过滤数据框中的行。

由于某种原因,OR 运算符的行为就像我期望的 AND 运算符的行为一样,反之亦然。

我的测试代码:

df = pd.DataFrame({'a': range(5), 'b': range(5) })

# let's insert some -1 values
df['a'][1] = -1
df['b'][1] = -1
df['a'][3] = -1
df['b'][4] = -1

df1 = df[(df.a != -1) & (df.b != -1)]
df2 = df[(df.a != -1) | (df.b != -1)]

print(pd.concat([df, df1, df2], axis=1,
                keys = [ 'original df', 'using AND (&)', 'using OR (|)',]))

结果:

      original df      using AND (&)      using OR (|)    
             a  b              a   b             a   b
0            0  0              0   0             0   0
1           -1 -1            NaN NaN           NaN NaN
2            2  2              2   2             2   2
3           -1  3            NaN NaN            -1   3
4            4 -1            NaN NaN             4  -1

[5 rows x 6 columns]

如您所见,AND运算符删除至少有一个值等于的每一行-1。另一方面,OR运算符要求两个值都等于-1放下它们。我期望得到完全相反的结果。有人能解释这种行为吗?

我正在使用 pandas 0.13.1。


正如您所看到的,AND 运算符会删除其中至少有一个的每一行 值等于-1。另一方面,OR 运算符需要 值等于-1以删除它们。

这是正确的。请记住,您正在根据您想要的内容编写条件keep,而不是你想要放弃的东西。为了df1:

df1 = df[(df.a != -1) & (df.b != -1)]

你是说“保留其中的行df.a不是 -1 且df.b不是 -1”,这与删除至少有一个值为 -1 的每一行相同。

For df2:

df2 = df[(df.a != -1) | (df.b != -1)]

你是说“保留其中任一行df.a or df.b不是 -1”,这与删除两个值为 -1 的行相同。

PS:链式访问就像df['a'][1] = -1会给你带来麻烦。最好养成使用习惯.loc and .iloc.

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

pandas:索引数据帧时的多个条件 - 意外行为 的相关文章

  • 如何跳过财务图中的空日期(周末)

    ax plot date dates dates highs lows 我目前正在使用此命令来绘制财务高点和低点Matplotlib http en wikipedia org wiki Matplotlib 效果很好 但如何删除 x 轴上
  • 是否可以在 Sphinx 中隐藏 Python 函数参数?

    假设我有以下函数 该函数记录在Numpydoc 风格 https github com numpy numpy blob master doc HOWTO DOCUMENT rst txt 并且文档是自动生成的Sphinx http sph
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • 修复类以在 Flask 会话中启用对象存储[重复]

    这个问题在这里已经有答案了 我有一个自定义类 Passport 其中包含活动用户身份和权限 我曾经将它存储在会话中 如下所示 p Passport p do something fancy session passport p 它就奏效了
  • 导入错误:没有名为“wordcloud”的模块

    我正在努力将 wordcloud 安装到我的环境中 这是我正在运行的代码 import os import matplotlib pyplot as plt from wordcloud import WordCloud 我收到以下错误 I
  • 为什么我不能“string”.print()?

    我的理解print 在 Python 和 Ruby 以及其他语言 中 它是字符串 或其他类型 上的方法 因为它的语法非常常用 打印 嗨 works 那么为什么不呢 hi print 在 Python 中或 hi print在红宝石工作 当你
  • 将分布拟合到直方图

    I want to know the distribution of my data points so first I plotted the histogram of my data My histogram looks like th
  • 比较两个文本文件并计算差异

    我一直在尝试在Python中比较两个文本文件 本质上我想打开它们并一次比较一个字符 如果字符不同 则向计数器添加1 然后显示该值 这是我到目前为止所拥有的 usr bin env python diff 0 import random im
  • Python代码执行时自动打开浏览器

    我正在 Python Flask 中实现 GUI Flask 的设计方式是 必须 手动 打开本地主机以及端口号 有没有一种方法可以使其自动化 以便在运行代码时自动打开浏览器 本地主机 我尝试使用 webbrowser 包 但它在会话终止后打
  • 如何将一串Python代码编译成一个可以调用函数的模块?

    在 Python 中 我有一串 Python 源代码 其中包含以下函数 mySrc def foo print foo def bar print bar 我想将这个字符串编译成某种形式类似模块的对象这样我就可以调用代码中包含的函数 这是我
  • django 中的“管理器”是什么?

    我已经阅读了Django官方中的定义文档 https docs djangoproject com en dev topics db managers 我仍然对什么感到困惑Manager does 文档说它们允许您操作数据库表 模型 但我仍
  • Learning_rate 不是合法参数

    我正在尝试通过实现 GridSearchCV 来测试我的模型 但我似乎无法在 GridSearch 中添加学习率和动量作为参数 每当我尝试通过添加这些代码来执行代码时 我都会收到错误 这是我创建的模型 def define model op
  • 使用 plone.api 创建文件的 Python 脚本在设置文件时出现错误 WrongType

    Dears 我正在创建一个脚本python来在Plone站点中批量上传文件 安装是UnifiedInstaller Plone 4 3 10 该脚本读取了一个txt 并且该txt以分号分隔 在新创建的项目中设置文件时出现错误 下面是脚本 f
  • 如何使用 Ajax 在 Flask 中发布按钮值而不刷新页面?

    我有一个问题 当我单击 Flask 应用程序中的按钮时 我想避免重新加载 我知道有 Ajax 解决方案 但我想知道如何将我的按钮链接到 ajax 函数以发布按钮值并运行链接到其值的 python 函数 这是我的 html 按钮 div di
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 无法在 Windows 服务器上使 SVN 预提交脚本失败

    我正在编写一个 SVN pre commit bat 文件 该文件调用 Python 脚本来查询我们的问题跟踪系统 以确定用户提供的问题跟踪 ID 是否处于正确的状态 例如 打开 状态 并与正确的关联项目 SVN 服务器运行 Windows
  • 单击 selenium 中的链接时循环遍历表格的行(python)

    示例页面源代码如下所示 div class div1 table class foot market tbody td class today name td tbody tbody td class today name td tbody
  • 在Python中将罗马数字转换为整数

    根据 user2486 所说 这是我当前的代码 def romanMap map M 1000 CM 900 D 500 CD 400 C 100 XC 90 L 50 XL 40 X 10 IX 9 V 5 V 4 I 1 return
  • 使用 Python 进行 Google 搜索网页抓取 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近为了工作中的一些项目 学习了很多python 目前我需要使用谷歌搜索结果进行一些网络抓取 我发现几
  • 将自定义属性添加到 Tk 小部件

    我的主要目标是向小部件添加隐藏标签或字符串之类的内容 以在其上保存简短信息 我想到创建一个新的自定义 Button 类 在本例中我需要按钮 它继承所有旧选项 这是代码 form tkinter import class NButton Bu

随机推荐

  • 为什么stream api不是为异常处理而设计的?

    Fixtures BiConsumer
  • 使用 Python 读取 UTF8 CSV 文件

    我正在尝试使用 Python 读取带有重音字符的 CSV 文件 仅限法语和 或西班牙语字符 基于 csvreader 的 Python 2 5 文档 http docs python org library csv html http do
  • 使用光流进行特征跟踪

    我找到了一个类似的问题 https stackoverflow com questions 9701276 opencv tracking using optical flow 9702540 comment13031247 9702540
  • 将材质图标与样式组件一起使用

    刚刚开始使用样式组件 有没有办法设置第三方图标 例如 Material Design Icon 的样式 这是我到目前为止的代码 但显然它不起作用 相关代码位于内容组件下方 Thanks const MaterialIcon props gt
  • localStorage html5 功能在 Samsung Android 设备上的 WebView 中不起作用

    我有一个用 WebView 包装的 html5 应用程序 为了在页面之间存储和检索用户输入值 我使用本地存储html5 功能 它在我的 Nexus 4 Android 4 4 4 上运行良好 但在 Samsung Galaxy Tab 2
  • 罗马尼亚语区域设置

    经过谷歌搜索一段时间后 我发现 Android 2 3 版本确实支持它 但我没有找到它支持的最低版本 如果 Android 2 2 版本不支持罗马尼亚语那么有什么替代方案 感谢您的关注 这是已解决的类似问题 Android 支持的语言 区域
  • 使用正则表达式检查文本框不允许小数

    我想创建一个 TextChanged 事件来检查输入文本是否符合特定条件 如果不符合则删除最后输入的字符 在本例中 标准是数字 1 位小数和 1 位分数 我正在测试仅用于数字和小数的正则表达式 并遇到了问题 我尝试了几种不同的表达式 我不擅
  • 如何在 Laravel 代码中嵌入视频

    我正在开发一个项目 在该项目中 我将 youtube 视频链接存储在数据库中 然后检索这些链接并使用刀片模板引擎尝试将它们嵌入到页面中 我使用循环将视频放入页面中 由于某种原因 我在浏览器中看不到任何视频 它覆盖了提到的空间 但不渲染任何东
  • QSqlQuery size() 总是返回-1

    QSqlQuery query QString queryText SELECT FROM section query exec queryText qDebug lt lt query size always 1 while query
  • ViewPager Fragments 未在 onCreate 中启动

    我似乎在更新 ViewPager 中使用的片段时遇到问题 无论我尝试使用 onCreate onCreateView 还是 onResume 以下是我在 MainFragment 中设置 ViewPager 的方法 public View
  • 绘制多条徒手折线或曲线图 - 添加撤消功能

    我正在尝试创建一个具有撤消和重做功能的简单绘图应用程序 我假设您可以将要绘制的内容添加到列表中 并调用该列表来绘制所有内容 然后撤消应该只是删除最后添加的项目并再次重新绘制所有内容 问题是 如何将绘制的内容添加到列表中并使用该列表撤消 我正
  • 修改awk中的文本文件

    我有一个文本文件 如以下小示例 chr1 HAVANA transcript 12010 13670 gene id ENSG00000223972 4 transcript id ENST00000450305 2 gene type p
  • 创建一个ant文件来运行其他ant文件

    I saw this https stackoverflow com questions 2108862 ant for other ants相关问题 但我的情况不同 所以再次询问 基本上 我有 12 个 ant 文件 我必须按特定顺序运行
  • 如何捕获 OSX 所有正在运行的进程的列表并将它们保存为 Xcode / Cocoa 中的文件?

    我想要捕获 OSX 所有正在运行的进程的列表 并将它们保存为 Xcode Cocoa 中的文件 我用谷歌搜索了这个 我发现的是 我的工作区正在运行的应用程序 我不知道该怎么做 请帮忙 谢谢你 正如中所解释的QA1123 http devel
  • 关闭动画、模态、Angular-UI

    是否可以关闭 Angular UI 中模态指令的动画 http angular ui github io bootstrap http angular ui github io bootstrap 选项里找不到啊我应该修改源吗 或者当您想要
  • Ada 中类型/包别名的单独声明

    我想声明一些 用户定义的编译器常量 以使我的规范文件尽可能保持 常量 这在 C 中很常见 例如 misc config hh namespace misc typedef std shared ptr a A ptr namespace a
  • 使用window.open()下载文件,如何不去掉URL中的#?

    因此 当单击某个元素时 我使用 JavaScript 下载文件 如下所示 HTML p Click Here p JavaScript function download window open file pdf 在单击该元素之前 URL
  • requirejs - 多次调用 require 的性能

    我想知道在具有多个模块的项目中使用 RequireJS 的正确方法是什么 关于具有较少依赖项的多个 require 调用与具有所有依赖项的单个 require 的性能 让我们以一个应用程序为例 我需要加载一些模块 gmaps jquery
  • 为什么 Visual Studio 2010 在编辑大型 .js 文件时速度会变慢?

    我的 js 文件目前超过 4400 行 编辑它非常慢 从按键到字符出现在文档中大约有一秒钟的延迟 是否存在与编辑大文件或 JavaScript 文件相关的特定性能问题 注意 我正在使用 VS2010 SP1 并使用 16GB RAM 运行它
  • pandas:索引数据帧时的多个条件 - 意外行为

    我正在按两列中的值过滤数据框中的行 由于某种原因 OR 运算符的行为就像我期望的 AND 运算符的行为一样 反之亦然 我的测试代码 df pd DataFrame a range 5 b range 5 let s insert some