获取 pandas 数据框中包含和不包含 NaN 的所有行

2024-01-08

在 pandas 数据框中分割包含 NaN 和不包含 NaN 的行的最有效方法。

input :- ID    Gender    Dependants   Income   Education  Married
         1     Male      2            500      Graduate   Yes
         2     NaN       4            2500     Graduate   No
         3     Female    3            NaN      NaN        Yes
         4     Male      NaN          7000     Graduate   Yes
         5     Female    4            500      Graduate   NaN
         6     Female    2            4500     Graduate   Yes

没有 NaN 的预期输出是,

ID    Gender    Dependants    Income    Education    Married
1     Male      2             500       Graduate     Yes
6     Female    2             4500      Graduate     Yes

NaN 的预期输出是,

ID    Gender    Dependants    Income    Education    Married
2     NaN       4             2500      Graduate     No
3     Female    3             NaN       NaN          Yes
4     Male      NaN           7000      Graduate     Yes
5     Female    4             500       Graduate     NaN 

Use boolean indexing http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing检查缺失值和any http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.any.html检查至少一项True每行:

mask = df.isnull().any(axis=1)

df1 = df[~mask]
df2 = df[mask]
print (df1)
   ID  Gender  Dependants  Income Education Married
0   1    Male         2.0   500.0  Graduate     Yes
5   6  Female         2.0  4500.0  Graduate     Yes

print (df2)
   ID  Gender  Dependants  Income Education Married
1   2     NaN         4.0  2500.0  Graduate      No
2   3  Female         3.0     NaN       NaN     Yes
3   4    Male         NaN  7000.0  Graduate     Yes
4   5  Female         4.0   500.0  Graduate     NaN

Details:

print (df.isnull())
     ID  Gender  Dependants  Income  Education  Married
0  False   False       False   False      False    False
1  False    True       False   False      False    False
2  False   False       False    True       True    False
3  False   False        True   False      False    False
4  False   False       False   False      False     True
5  False   False       False   False      False    False

print (mask)
0    False
1     True
2     True
3     True
4     True
5    False
dtype: bool

并且您始终可以使用先前代码的更易读的方式,而无需反转掩码:

mask = df.notna().any(axis=1)
df1 = df[mask]

完全相同的结果。

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

获取 pandas 数据框中包含和不包含 NaN 的所有行 的相关文章

  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • Pandas 中的 Groupby、转置和追加?

    我有一个数据框 如下所示 每个用户有10条记录 现在 我想创建一个如下所示的数据框 userid name1 name2 name10 这意味着我需要反转该列的每 10 条记录name并附加到新的数据框 那么 它是如何做到的呢 有什么办法可
  • FTP 下载冻结整个应用程序

    我正在尝试从 FTP 服务器下载一个大约 100 MB 的文件 这是一个测试 bin 文件 因为我正在测试该应用程序 我猜我将来想要下载的文件会更重 当我想下载文件时 整个应用程序就会冻结 几秒钟后它就会下载文件 该文件已完成 并且已成功下
  • 在 python 中使用 pandas 计算行的出现次数

    我有一个包含数千行和 4 列的 pandas 数据框 IE A B C D 1 1 2 0 3 3 2 1 3 1 1 0 有没有办法统计某一行出现了多少次 例如 可以找到多少次 3 1 1 0 并返回这些行的索引 如果你只寻找一行 那么我
  • PyCharm 表示 readline 导入未被使用

    我有这个代码 while True cmd input gt if cmd exit break 但我想实现高级文本输入功能 例如命令历史记录 因此我导入了 readline 模块 导入 readline 模块 甚至不使用它 将解锁这些功能
  • 更新到 Django 1.8 - AttributeError: django.test.TestCase 没有属性 'cls_atomics'

    我将 Django 1 7 项目更新为 Django 1 8 现在运行测试时出现错误 它们是 Django 的子类 django test TestCase Traceback most recent call last File env
  • 使用 dtypes read_csv 但列中没有值[重复]

    这个问题在这里已经有答案了 我使用以下代码来读取 csv 通过指定每个列的类型 clean pdf type pd read csv table updated csv usecols col names dtype col types 但
  • 使用 Python 绘制 USGS 水文数据甘特图?

    我编译了一个数据帧 其中包含几个不同流计的 USGS 流数据 现在我想创建一个类似的甘特图this https stackoverflow com questions 31820578 how to plot stacked event d
  • 如何获取分类数据的分组条形图

    I have a big dataset with information about students And I have to build a graph of dependencies between different value
  • 无法让gunicorn使用Python 3

    我有 Ubuntu NGINX Gunicorn 以及可与 Python 3 设置配合使用的虚拟环境 但我的 Flask 应用程序仍然以 2 7 6 运行 我已系统地按照说明进行操作 但找不到解决方案 Gunicorn 配置文件 progr
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 如何在两个 pandas 数据框之间应用函数

    如何将自定义函数应用于两个数据框 这 apply方法 https pandas pydata org pandas docs version 0 24 2 reference api pandas DataFrame apply html似
  • Pandas 多索引数据框中组之间的计算

    假设我生成一个多索引数据框如下 arrays np array bar bar baz baz foo foo qux qux np array one two one two one two one two df pd DataFrame
  • 如何将字符串转换为浮点数? [复制]

    这个问题在这里已经有答案了 我需要转换变量 pi string 3 1415926 变成一个浮子 这是我正在处理的事情 你的线路应该是pi float float pi string float pi string 是一个浮点值 你不能给它
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • 如何从Python中的字符串中提取变量名称和值

    我有一根绳子 data var1 id 12345 name John White python中有没有办法将var1提取为python变量 更具体地说 我对字典变量感兴趣 这样我就可以获得变量的值 id和name python 这是由提供
  • tkinter - 检查文本小部件是否为空

    操作系统 Windows 8 1 Python 3 5 在 Tkinter 中 我发现了很多代码来验证输入框是否为空 但是当我尝试对文本小部件应用相同的方法时 它不起作用 看起来文本小部件有一个 n 字符 这可能就是问题所在 知道如何进行此
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel

随机推荐