这是 Pandas 的 notnull() 错误还是我的根本误解(可能是误解)

2024-02-11

我有一个带有两列和默认索引的 pandas 数据框。第一列是字符串,第二列是日期。最上面的日期是 NaN(尽管实际上应该是 NaT)。

index    somestr    date
0        ON         NaN
1        1C         2014-06-11 00:00:00
2        2C         2014-07-09 00:00:00
3        3C         2014-08-13 00:00:00
4        4C         2014-09-10 00:00:00
5        5C         2014-10-08 00:00:00
6        6C         2014-11-12 00:00:00
7        7C         2014-12-10 00:00:00
8        8C         2015-01-14 00:00:00
9        9C         2015-02-11 00:00:00
10       10C        2015-03-11 00:00:00
11       11C        2015-04-08 00:00:00
12       12C        2015-05-13 00:00:00

将此数据框称为 df。

当我跑步时:

df[pd.notnull(df['date'])]

我希望第一排消失。事实并非如此。 如果我通过设置删除带有字符串的列:

df=df[['date']]

然后申请:

df[pd.notnull(df['date'])]

那么带有 null 的第一行就会消失。

此外,如果所有列都是数字/日期类型,则带有 null 的行始终会消失。当出现带有字符串的列时,就会出现此问题。

这肯定是一个错误,对吧?我不确定其他人是否能够复制这一点。 这是我的 Windows 版 Enthought Canopy 上的内容(我对 UNIX/Linux 命令行噪音不够聪明)

根据 Jeff 和 unutbu 的以下请求: @ubuntu-

df.dtypes
somestr    object
date       object
dtype:  object

Also:

type(df.iloc[0]['date'])
pandas.tslib.NaTType

在代码中,该列被专门指定为 pd.NaT 我也不明白为什么它应该说 NaT 却说 NaN。当我使用这个玩具框架时,我使用的过滤效果很好:

df=pd.DataFrame({'somestr' : ['aa', 'bb'], 'date' : [pd.NaT, dt.datetime(2014,4,15)]}, columns=['somestr', 'date'])

还应该注意的是,虽然上表的输出中有 NaN,但以下输出 NaT:

df['date'][0]
NaT

Also:

pd.notnull(df['date'][0])
False

pd.notnull(df['date'][1])
True

但是......在评估数组时,它们都返回 True - 奇怪......

np.all(pd.notnull(df['date']))
True

@Jeff - 这是 0.12。我被这个问题困住了。该框架是通过连接使用 psql 从数据库查询中抓取的两个不同框架来创建的。然后通过我所做的计算添加日期和其他一些浮点列。当然,我过滤到了在这里有意义的两个相关列,直到我查明字符串值列导致了问题。

**********如何复制**********

import pandas as pd
import datetime as dt

print(pd.__version__)
# 0.12.0

df = pd.DataFrame({'somestr': ['aa', 'bb'], 'date': ['cc', 'dd']},
                  columns=['somestr', 'date'])
df['date'].iloc[0] = pd.NaT
df['date'].iloc[1] = pd.to_datetime(dt.datetime(2014, 4, 15))
print(df[pd.notnull(df['date'])])
#   somestr                 date
# 0      aa                  NaN
# 1      bb  2014-04-15 00:00:00

df2 = df[['date']]
print(df2[pd.notnull(df2['date'])])
#                  date
# 1 2014-04-15 00:00:00

因此,这个数据框最初包含所有字符串条目 - 然后日期列被转换为顶部带有 NaT 的日期 - 请注意,在表中它是 NaN,但是当使用 df.iloc[0]['date'] 时,你会这样做参见 NaT。使用上面的代码片段,您可以看到无论有没有 somestr 列,按 not null 进行过滤都是奇怪的。再说一次 - 这是适用于 Windows 的 Enthought Canopy,带有 Pandas 0.12 和 NumPy 1.8。


我也遇到了这个问题。这是我修复它的方法。 “isnull()”是一个检查某些内容是否为 NaN 或空的函数。 “~”(波形符)运算符对以下表达式求反。所以我们说给我一个来自原始数据帧的数据帧,但仅限于“数据”行不为空的情况。

df = df[~df['data'].isnull()]

希望这可以帮助!

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

这是 Pandas 的 notnull() 错误还是我的根本误解(可能是误解) 的相关文章

  • 如何测试使用 XCom 的 Apache Airflow 任务

    我正在尝试找出一种测试 DAG 的方法 其中有几个任务使用 XCom 进行通信 由于控制台命令只允许我从 DAG 运行任务 有没有一种方法可以测试通信而无需通过 UI 运行 DAG Thanks 这是一种对我有用的方法 尽管 Airflow
  • pip 安装失败,SSL 证书验证失败 (_ssl.c:833)

    我无法通过 pip install 安装任何外部 python 模块 我已经正确安装了 python 但如果我使用 pip install 它会显示此错误 这是我运行后的代码pip install pytesseract C Users 1
  • 我应该为 MySQL 使用什么 python 3 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 据我所知 MySQLdb 仍然没有移植到 Python 3 pypy 上似乎有另一个名为 PyMySQL
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • OpenCV - 我需要将彩色图像插入黑白图像并且

    我用以下代码将黑白图像插入彩色图像 没问题 face grey cv cvtColor face cv COLOR RGB2GRAY for row in range 0 face grey shape 0 for column in ra
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • 使用 3d 对象作为 3d 散点图中的标记 - Python

    使用下面的代码 我尝试模拟一个用罐头制成的碗 我希望每个标记都是一个罐头 最好的方法是什么 我真的很感激任何建议 谢谢 import pylab import numpy as np from math import pi sin cos
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 如何在交互式绘图(Python)中获得鼠标指向的(x,y)位置?

    我使用 ipython 笔记本 带有魔法 matplotlib nbagg 我正在审查matplotlib widget Cursor但仅查看光标widgets Cursor http matplotlib org 1 4 3 exampl
  • 如何在 Pytorch 中将一维 IntTensor 转换为 int

    如何将一维 IntTensor 转换为整数 这 IntTensor int 给出错误 KeyError Variable containing 423 torch IntTensor of size 1 我所知道的最简单 最干净的方法 In
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • 检查多个 pd.DataFrame 是否相等

    是否有一种 Pythonic 方式 无循环或递归 来检查是否超过两个pd DataFrames 例如 pd DataFrames 列表 彼此相等吗 就像是 all x equals dfs 0 for x in dfs with dfs数据
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • Python 中的十进制到二进制半精度 IEEE 754

    我只能使用以下命令将十进制转换为二进制单精度 IEEE754struct pack模块 或者使用相反的方法 float16 或 float32 numpy frombuffer 是否可以使用 Numpy 将十进制转换为二进制半精度浮点数 我
  • 当价格低于阈值时使用 pandas DataFrame 实施矢量化止损

    给出这个示例数据框 date close signal positions 2017 01 02 27 90 0 0 0 0 2017 01 03 27 76 0 0 0 0 2017 01 04 28 65 1 0 1 0 2017 01
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • Flask 扩展未在 app.extensions 中注册

    我想访问在我的 Flask 应用程序上注册的一些扩展 我尝试使用app extensions 但我初始化的一些扩展不在字典中 from flask import current app current app extensions get

随机推荐

  • 如何在c中绘制直方图

    如何在 c 中从 2 个数组绘制直方图 您可以用这个字符 来表示图表中的计数 这是一个可以打印的字符 printf c char 254u 考虑一些随机的float arr and hist保存计数的数组 Code Function gen
  • 越野车弹跳球

    我在处理中制作碰撞球草图时 遇到了一个奇怪的错误 尽管有从墙上弹起的条件 有些球粘在上面 我在这里找不到错误的根源 有人可以帮忙吗 我还意识到可能很少 很多 糟糕的编码实践 但我事先道歉 我在下面发布代码 1 主要 https pasteb
  • Webpack / ES6:如何导入样式表

    我看到像 bootstrap 这样的存储库开始在它们的中包含额外的标签package json 文件 例如 style 和 less https github com twbs bootstrap blob v4 0 0 alpha 2 p
  • 在文本区域“内部”加粗文本

    我有一个文本区域 myarea我正在其中输入文本 我已经输入了这段文字 这是一个句子 只有这个词 最终会被加粗 现在我的侧面有一个按钮 就像一个粗体按钮 我想选择想要加粗的字母 单击按钮 然后看到这些字母在文本区域内变成粗体 它与许多编辑器
  • UITableViewCell - 如何在重用之前重置内容

    有一个烦人的错误我无法修复 我有一个CustomCell 其中我有一个子视图 可以根据对象的值更改其颜色 UITableViewCell tableView UITableView tableView cellForRowAtIndexPa
  • 如何使用 jQuery 选择的插件重置表单?

    我有一堆select元素的形式为我正在使用 Jquery Chosen 插件 https github com harvesthq chosen 如何重置表格 以下不起作用
  • Three.js 图块具有使用平面几何的多个纹理

    所以我正在尝试构建一个由图块组成的基于 3D 的世界 我已经成功地使用平面几何和高度值等做到了这一点 但现在我已经到了我可能必须改变一切的地步 问题是我希望一个图块具有多个纹理 使用着色器 因为我想混合它们 我能够在全球范围内执行此操作 因
  • 获取任意变换的 MatrixTransform

    我在 WPF 堆栈中工作 我希望能够为任何 Transform 获取 MatrixTransform 根据链接here http msdn microsoft com en us library system windows media t
  • Swing 数据绑定框架

    几乎同样的问题被问过year ago https stackoverflow com questions 510655 jgoodies binding vs jsr 295 但是这方面已经有了一些新的发展 为 Swing 应用程序选择一个
  • 尝试获取 PDO 中非对象的属性

    首先 我知道这可能是一个重复的问题 但我做了一些搜索 例如这个问题 https stackoverflow com questions 5891911 trying to get property of non object in但我不明白
  • 将 xml 转换为 json 以将文件处理为 Bigquery

    我想将 stackexchange 原始数据处理到 BigQuery 中 但首先数据使用 7z 压缩格式 因此我解压缩数据以将其移植为 gz 格式 但内部文件是 xml 所以我需要将文件从 xml 转换为 json 有任何想法吗 我使用 p
  • 我如何使用 Objective C 中的照片框架从图库访问照片

    我是照片框架的新手 我不知道如何使用它 我使用了很多链接 但我很困惑如何在 imageview 中显示图像 我想使用我正在尝试的照片框架从图库中获取所有照片 NSMutableOrderedSet recentsDataSource PHF
  • 仅使用 hashKey 查询 dynamoDB

    我想仅使用 Hashkey 查询我的 dynamoDB 我的表 名称 testTable 架构如下 字符串自动ID HashKey 字符串 AlexandriaID RangeKey 字符串文档类型 我的 dynamoDBQueryExpr
  • 为什么 bytes.fromhex() 会奇怪地处理某些十六进制值?

    我正在尝试使用Python中的套接字库将两个十六进制数字的字节发送到一个编程为接受它们的硬件 要从用户输入的十六进制数字字符串创建字节 我尝试使用bytes fromhex 描述的方法here https docs python org d
  • 错误:请求“this”中的成员“..”,该成员属于非类类型“--* const”

    我的第一个问题在这里 请原谅 我刚刚进入C 并开始使用DS 堆 我的代码 我认为 using namespace std typedef char stackElement class Stack public stackElement c
  • URLS 问题中的 Django 双斜杠(多个 Web 服务器、Apache 和 Nginx)

    要查看示例 加载 example com 单击链接到 test 的链接 而不是访问 http example com test 而是访问 http www example net 测试 或者 如果您登录 自动生成的 django 管理部分的
  • 如何在悬停时更改 img src 时添加过渡?

    所以我尝试使用 javascript 在原始图像悬停时添加不同的图像 我的语法与此类似 效果很好 function imgHover projectImage src img img1 png function imgHover2 proj
  • java编译器目标版本“jsr14”与JDK 7/8

    谁能告诉我jsr14的目标选项javacJDK7 8 仍然可用吗 Say javac source 1 5 target jsr14 Hello java 我们在 OSGi 中大量使用 jsr14 因为它允许我们在 API 中使用泛型 但仍
  • 以编程方式构建带有约束的 titleView (或者通常构建带有约束的视图)

    我正在尝试构建一个具有如下约束的 titleView 我知道如何用框架来做到这一点 我将计算文本的宽度 图像的宽度 创建一个具有该宽度 高度的视图来包含两者 然后将两者作为子视图添加到带有框架的正确位置 我试图了解如何在有限制的情况下做到这
  • 这是 Pandas 的 notnull() 错误还是我的根本误解(可能是误解)

    我有一个带有两列和默认索引的 pandas 数据框 第一列是字符串 第二列是日期 最上面的日期是 NaN 尽管实际上应该是 NaT index somestr date 0 ON NaN 1 1C 2014 06 11 00 00 00 2