为什么我在使用 np.nan 时得到 nan 作为字符串,而在使用 pd.NA 时得到缺失值?

2023-12-23

抱歉,我无法共享数据。我尝试制作测试数据,但它没有给出相同的错误或不同的缺失值,如下所述。

在底部添加了更多信息pd.NA

我正在用代码加载数据:

df = pd.read_csv("C:/data.csv")

加载数据时我收到此警告:

C:\Users\User1\AppData\Local\Continuum\anaconda3\lib\site-packages\IPython\core\interactiveshell.py:3063: DtypeWarning: Columns (162,247,274,292,304,316,321,335,345,347,357,379,389,390,393,395,400,401,420,424,447,462,465,467,478,481,534,536,538,570,616,632,653,666,675,691,707,754,758,762,766,770,774,778,782,784,785,786,788,789,790,792,793,794,796,797,798,800,801,802,804,805,806,808,809,810,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,867,868,871,872,875,876,880,1367,1368,1370,1371,1373,1374,1376,1377,1379,1380,1382,1383,1385,1386,1388,1389,1391,1392,1394,1395,1397,1398,1400,1401,1403,1404,1406,1407,1409,1410,1412,1413,1415,1416,1418,1419,1421,1422,1424,1425,2681) have mixed types.Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)

据我了解这个问题 https://stackoverflow.com/questions/60512539/find-row-number-in-column-where-it-matches-any-other-value-in-column-of-other-da这个警告不是问题,我可以忽略它。

我运行此代码后here https://stackoverflow.com/questions/60101845/compare-multiple-pandas-columns-1st-and-2nd-after-3rd-and-4rth-after-etc-wit:

# from: https://stackoverflow.com/questions/60101845/compare-multiple-pandas-columns-1st-and-2nd-after-3rd-and-4rth-after-etc-wit
# from: https://stackoverflow.com/questions/27474921/compare-two-columns-using-pandas?answertab=oldest#tab-top
# from: https://stackoverflow.com/questions/60099141/negation-in-np-select-condition

import pandas as pd
import numpy as np



col1 = ["var1", "var3", "var5"]
col2 = ["var2", "var4", "var6"]
colR = ["Result1", "Result2", "Result3"]

s1 = df[col1].isnull().to_numpy()
s2 = df[col2].isnull().to_numpy()

conditions = [~s1 & ~s2, s1 & s2, ~s1 & s2, s1 & ~s2]
choices = ["Both values", np.nan, df[col1], df[col2]]

df = pd.concat([df, pd.DataFrame(np.select(conditions, choices), columns=colR, index=df.index)], axis=1)

运行上面的代码时新创建的列包含nan但加载的列csv文件包含NaN.

运行后df['var1'].value_counts(dropna=False),我得到输出:

NaN    3453
0.0    3002
1.0     314
Name: var1, dtype: int64

运行后df['Result1'].value_counts(dropna=False),我得到输出:

0.0            3655
nan            2665
1.0             407
Both values      42
Name: Result1, dtype: int64

请注意var1包含NaN值但是Result1包含nan values.

当我跑步时df['var1'].value_counts(dropna=False).loc[[np.nan]]我得到输出:

NaN    3453
Name: weeklyivr_q1, dtype: int64

当我跑步时df['Result1'].value_counts(dropna=False).loc[[np.nan]]我收到错误(错误中的变量名称不同,但关键思想是没有缺失值):

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-52-0daeac75fdb4> in <module>
     27 #combined_IVR["weeklyivr_q1"].value_counts(dropna=False)
     28 #combined_IVR["my_weekly_ivr_1"].value_counts(dropna=False).loc[["Both values"]]
---> 29 combined_IVR["my_weekly_ivr_1"].value_counts(dropna=False).loc[[np.nan]]
     30 #combined_IVR["weeklyivr_q1"].value_counts(dropna=False).loc[[np.nan]]

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key)
   1764 
   1765             maybe_callable = com.apply_if_callable(key, self.obj)
-> 1766             return self._getitem_axis(maybe_callable, axis=axis)
   1767 
   1768     def _is_scalar_access(self, key: Tuple):

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_axis(self, key, axis)
   1950                     raise ValueError("Cannot index with multidimensional key")
   1951 
-> 1952                 return self._getitem_iterable(key, axis=axis)
   1953 
   1954             # nested tuple slicing

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_iterable(self, key, axis)
   1591         else:
   1592             # A collection of keys
-> 1593             keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False)
   1594             return self.obj._reindex_with_indexers(
   1595                 {axis: [keyarr, indexer]}, copy=True, allow_dups=True

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
   1549 
   1550         self._validate_read_indexer(
-> 1551             keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing
   1552         )
   1553         return keyarr, indexer

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
   1636             if missing == len(indexer):
   1637                 axis_name = self.obj._get_axis_name(axis)
-> 1638                 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
   1639 
   1640             # We (temporarily) allow for some missing keys with .loc, except in

KeyError: "None of [Float64Index([nan], dtype='float64')] are in the [index]"

当我跑步时df['Result1'].value_counts(dropna=False).loc[['nan']]我正进入(状态:

nan    2665
Name: my_weekly_ivr_1, dtype: int64

So nan“Result1”列中是字符串。

如果我更换choices = ["Both values", np.nan, df[col1], df[col2]] with choices = ["Both values", pd.NA, df[col1], df[col2]]运行后:

df['Result1'].value_counts(dropna=False).loc[[np.nan]]

我得到输出:

NaN    2665
Name: Result1, dtype: int64

所以在这种情况下np.nan产生字符串和pd.NA缺失值。

问题:

为什么我得到nan使用 np.nan 时在“Result1”列中?可能是什么原因以及如何解决这个问题?


None

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

为什么我在使用 np.nan 时得到 nan 作为字符串,而在使用 pd.NA 时得到缺失值? 的相关文章

  • 如何从 Lua 调用 Python 函数?

    我想从我的 lua 文件运行 python 脚本 我怎样才能实现这个目标 Example Python代码 sum py file def sum from python a b return a b Lua code main lua f
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 使用 boto3 从 s3 下载时使用 filename 作为文件名

    我正在使用 boto3 上传文件 如下所示 client boto3 client s3 aws access key id id aws secret access key key client upload file tmp test
  • 类型错误:需要 Future 或协程

    我尝试在 asyncssh 上自动重新连接 ssh 客户端 SshConnectManager 必须留在后台并在需要时进行 ssh 会话 class SshConnectManager object def init self host u
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • PyCharm - 如何挂起所有线程

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

    我不断收到这个 错误 psycopg2 ProgrammingError 列 someentry 不存在 该错误表明该列someentry不存在时someentry不是列 它只是要输入数据库的值 这是给出错误的代码 cur execute
  • 如何在 Sublime 2 REPL Mac 中运行 Python 3

    我的问题如下 我安装了 sublime 2 和 sublime repl 插件 一切正常 我唯一需要的是更改在控制台内置的 sublimerepl 上运行的 python 版本 我的意思是 我有 python 2 7 5 预先安装了 mav
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • Python Camelot无边框表格提取问题

    我正在努力从 pdf 文件中提取一些无边框表格 如下图所示 我已经安装了 python camelot 如图所示here https github com socialcopsdev camelot并且仅适用于有边框的表格 请参阅以下详细信
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • 当价格低于阈值时使用 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
  • 如何保持 python 3 脚本 (Bot) 运行

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

    I don t know how this thing is called or even how to describe it so the title may be a little bit misleading The first a
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 从 mp3/ogg 中剪切精确的时间范围

    我在 CDN 上有一堆音频文件 这些是并行的 mp3 和 ogg vorbises 这些文件每个都值得播放大约一小时 我需要从这些文件中提取任意部分 我得到一个文件名 我可以选择是否使用 mp3 或 ogg 版本 和两个时间戳 并且我需要恰
  • 计算iTextSharp PDF文档的高度?

    使用iTextSharp时如何计算PDF文档的高度 我正在使用 iTextSharp 使用绝对位置在 PDF 文档上定位各种图像 不过我注意到了SetAbsolutePosition 定位Y参数来自底部 所以我需要计算高度才能执行以下操作
  • MongoDB MapReduce是否锁定数据库

    MongoDB MapReduce 作业是否会锁定数据库 我正在开发一个多用户 MongoDB Web 应用程序 并且担心多用户冲突和性能 有人能给我一些至理名言吗 简单的回答 有时 这在很大程度上取决于您如何使用map reduce 但根
  • Electron:删除 beforeunload 事件监听器

    我有一个电子应用程序 用于显示我无法控制的网页 该应用程序的使用是为了每隔几秒钟就可以显示一个不同的页面 显示的页面之一附加了一个 beforeunload 监听器 如下所示 window addEventListener beforeun
  • 如何获取winexec或shellexecute中执行的Handle?

    我用来创建像 winexec Hand 这样的自定义函数 它将返回执行的应用程序的句柄 我确实使用了 findwindow 但如果它更改窗口标题就会出现问题 没有一种通用方法可以获取应用程序的 该 窗口句柄 因为不能保证任何程序都有一个窗口
  • 在 v23 上找不到符号 Manifest.permission.WRITE_EXTERNAL_STORAGE

    我使用以下 build gradle 文件编译代码 android compileSdkVersion 23 buildToolsVersion 23 0 1 defaultConfig applicationId com example
  • 作曲家权限被拒绝(公钥)

    我在 BitBucket 上有一个私人存储库 我尝试使用composer install在本地主机上安装 这是我的composer json文件 repositories type git url email protected cdn c
  • 初始化函数的目的

    我经常看到构造函数只调用 init 函数 如果您可以将 init 函数的内容放入构造函数中 为什么还要使用 init 函数呢 每个实例仅调用对象的构造函数一次 而 init 函数可能会调用多次 考虑以下代码 public class Foo
  • 使用 JLayeredPane 将多个 JPanel 添加到一个 JPanel 中

    我正在尝试将多个面板添加到另一个面板 我希望它们位于彼此之上 因此我使用 JLayeredPane 我为每个按钮添加了一个按钮 工作时应该出现两个按钮 import java awt Color import javax swing JBu
  • 如果UDF公式失败,Excel VBA保留原始值

    在各个单元格中 我有一个引用 UDF 的指定公式 getValueFromWorkbook OtherWorkbook 10 The getValueFromWorkbookUDF 大致做了类似的事情 Function getValueFr
  • 子域重定向到另一台服务器

    我有一个通过共享托管计划托管的网站 我的域名是在GoDaddy注册的 域名服务器是我的共享主机的域名服务器 到目前为止 一切正常 但我试图弄清楚如何添加子域并将其指向其他地方 我想将 sub mydomain com 指向其他一些 IP 在
  • 与 .pub 文件的 SSH 连接

    我从客户那里得到了 id rsa pub 我被告知要连接到它 我尝试添加密钥ssh copy id email protected cdn cgi l email protection 但它给出了错误 Permission denied p
  • 按语法解析为 AST(或 .y+.lang => xml)的工具

    给定一个词法分析器定义文件 一个语法文件 例如 postgresql y lflex 和 bison 程序来自它的源树 以及由这些词法分析器和解析器定义的文件 例如 SQL 查询 以某种标准形式 例如 XML 的 JSON 获取 AST 该
  • 提取 XSLT 中单引号之间的文本

    需要在之后提取文本单引号 E g div show div 变量是这样的
  • 使用 .gitignore 忽略 node_modules

    我使用 npm 启动了一个项目 添加了一些依赖项 然后使用ignit初始化了存储库git init 我想要目录node modules被git忽略 所以我将它添加到 gitignore像这样文件 gitignore node modules
  • 如何更新它以使用最新版本的引导程序?

    我对中演示的功能感兴趣这把小提琴 http jsfiddle net hcL4s 用于显示模式对话框 敲除结合是 Custom binding for making modals ko bindingHandlers bootstrapMo
  • 什么是 C++ 模块权限?

    我在 C 模块的上下文中看到了一些对术语 权限 的引用 例如https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules Baz Baz s declaratio
  • Android - 我似乎没有 ANIM 文件夹或 MAINANIM.xml 文档...这是为什么?

    无论我在 res 目录中查找什么 都只有 main xml 并且我应该有 res anim mainanim xml 但我没有它 我的代码在这里 逐帧动画 https stackoverflow com questions 3290290
  • 从服务器下载和保存大量图像时出现 iOS 内存问题 (ARC)

    以下代码从服务器下载 700 多个不同大小的图像 这里的问题是内存 即使使用 ARC 永远不会释放 最终会出现内存警告 然后应用程序退出 我已经在这个方法中尝试过 autoreleasepool 但似乎不起作用 另外 我尝试在不同位置停止
  • 为什么我在使用 np.nan 时得到 nan 作为字符串,而在使用 pd.NA 时得到缺失值?

    抱歉 我无法共享数据 我尝试制作测试数据 但它没有给出相同的错误或不同的缺失值 如下所述 在底部添加了更多信息pd NA 我正在用代码加载数据 df pd read csv C data csv 加载数据时我收到此警告 C Users Us