从 python dataframe 列中删除非 json 对象行

2023-12-02

我有一个数据框,该列包含 json 对象和字符串。我想删除不包含 json 对象的行。

下面是我的数据框的样子:

import pandas as pd

df = pd.DataFrame({'A': ["hello","world",{"a":5,"b":6,"c":8},"usa","india",{"a":9,"b":10,"c":11}]})

print(df)

我应该如何删除仅包含字符串的行,以便在删除这些字符串行后,我可以在下面应用到此列以将 json 对象转换为数据帧的单独列:

from pandas.io.json import json_normalize
df = json_normalize(df['A'])
print(df)

我想我更喜欢使用isinstance check:

In [11]: df.loc[df.A.apply(lambda d: isinstance(d, dict))]
Out[11]:
                            A
2    {'a': 5, 'b': 6, 'c': 8}
5  {'d': 9, 'e': 10, 'f': 11}

如果你也想包含数字,你可以这样做:

In [12]: df.loc[df.A.apply(lambda d: isinstance(d, (dict, np.number)))]
Out[12]:
                            A
2    {'a': 5, 'b': 6, 'c': 8}
5  {'d': 9, 'e': 10, 'f': 11}

将此调整为您想要包含的任何类型...


最后一步,json_normalize 获取 json 对象的列表,无论出于何种原因,Series 都不好(并给出 KeyError),您可以将其设为一个列表,然后就可以开始了:

In [21]: df1 = df.loc[df.A.apply(lambda d: isinstance(d, (dict, np.number)))]

In [22]: json_normalize(list(df1["A"]))
Out[22]:
     a    b    c    d     e     f
0  5.0  6.0  8.0  NaN   NaN   NaN
1  NaN  NaN  NaN  9.0  10.0  11.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 python dataframe 列中删除非 json 对象行 的相关文章

随机推荐

  • 如何在 DBX 中使用连接池?

    Well 我设法让代表驱动程序正确设置 但连接池仍然给我带来很多麻烦 从文档中给出的描述来看 连接池似乎应该像这样工作 在单个全局 Connection 对象上设置 DBXPool 驱动程序委托 将此 Connection 对象用于对数据库
  • 这似乎是一个关于 Javascript 事件的类。它是什么?

    我刚刚遇到了一些看起来像这样的 jQuery add row live click add function do something 这似乎与 点击 添加 事件 我自己使用自定义事件并认为它们很棒 但是git grep我们的代码库上没有显
  • 替换终端中的多行字符串

    我正在尝试编写一些代码来覆盖其之前的输出 例如原始输出是 1 但是 1 被替换为 2 这使得它看起来好像 1 一开始就没有被输出过 我有一个名为的列表列表board 我使用以下代码将此列表转换为多行字符串 rendered board fo
  • JavaScript:在选项卡之间共享数据[重复]

    这个问题在这里已经有答案了 在浏览器中打开的选项卡之间共享数据的最佳方式是什么 如需更现代的解决方案 请查看这个答案引述如下 我坚持使用问题中提到的共享本地数据解决方案localStorage 就可靠性 效率和浏览器兼容性而言 它似乎是最好
  • 为什么 '$_' 与 Perl 单行代码中的 $ARGV 相同?

    我在尝试在 Perl 单行代码中打印单引号时遇到了这个问题 我最终发现你必须逃离他们 这是一些代码来说明我的问题 让我们从打印文本文件开始 perl ne chomp print n shortlist txt red orange yel
  • 在C语言中如何使用scanf获取int?

    我正在尝试了解从控制台获取输入的不同方法的优点和缺点 我很困惑scanf 为什么我需要使用use favNumber代替favNumber 我明白那个 favNumber是地址位置favNumber 但是为什么要这样做呢 我觉得这里有一个类
  • 无法在 macOS 应用程序的 Xcode 9 中测试应用内购买

    自 iOS11 发布以来 测试应用内购买一直是一件痛苦的事 如果不是不可能的话 虽然我在这里找到了在 iOS 上测试的一个很好的解决方法 https stackoverflow com a 46467498 4514671我找不到 macO
  • 从 SELECT 中的多个选择中获取值

    我有一个选择框 允许您选择多个选项 我需要使用 JavaScript 访问所有选定的值 可能是值数组 这是获取所选值数组的最佳方法 mySelect val Return an array of the selected options v
  • 升级到 python 3.0 的提示? [复制]

    这个问题在这里已经有答案了 因此 随着 Python 3 0 现在是 3 1 的最终版本 很多人都面临着如何升级而不因向后不兼容而丢失一半代码库的担忧 人们有哪些最佳技巧可以避免切换到下一代 Python 时几乎不可避免地出现的许多陷阱 也
  • FFmpeg - PHP 错误代码 127

    我正在尝试从 php 执行 FFmpeg 我已经安装了FFmpeg php 并且扩展位于modules目录中 并且它显示在phpinfo中 FFmpeg 工作正常 因为我可以在终端中运行命令并输出视频 但是 当我尝试使用以下脚本从 php
  • 检查 SharePoint 365 中的工作簿是否已锁定进行编辑

    我在 SharePoint 365 中有一个文档库 我使用本地 Excel 宏文件通过 VBA 在线打开 SharePoint 中的工作簿 这适用于类似的代码 location https mycompany sharepoint com
  • 尝试使用 Python 和 Selenium 迭代地滚动和抓取网页

    我最近问了一个问题 参考这里 Python Web 抓取 Beautiful Soup Selenium 和 PhantomJS 仅抓取整个页面的一部分 这有助于确定我在抓取滚动时动态更新的页面的所有内容时遇到的问题 然而 我仍然无法使用
  • 使用pip在django中安装错误

    我是 Django 世界的新手 我想将其从 pip 安装到我的 Windows 中 但在安装时出现此错误 C Users xxxx gt pip install django Collecting django Could not inst
  • 在 Jdbc 中执行带有绑定变量的 SQL 查询

    我有一个这样的sql查询 select DEPT DEPTNO as DEPTNO1 DEPT DNAME as DNAME1 DEPT LOC as LOC1 EMP COMM as COMM1 EMP EMPNO as EMPNO1 E
  • Android:在 webview 中下载在 Oreo 中不起作用,它在 Oreo 设备中强制关闭

    下载管理器代码在 Android 中不起作用WebView适用于 Oreo 设备 但它适用于旧版本 如果不是 Oreo 设备 它会提示 正在下载文件 并被下载 但如果是 Oreo 它会强制关闭 崩溃 下面是我正在使用的代码 片段 webVi
  • 数字后跟大写 L

    什么是512L意思是 或者可能是任何数字后跟大写 L example uint sec然后是一些带有表达式的代码 sec 512L 取出来的XV6代码 mkfs c L代表long 这创建了一个类型的文字long l也可以 但看起来像1 所
  • 连接表上的 where 子句

    对于下表 ROOM ID NAME 1 ROOM 1 2 ROOM 2 房间状态 ID ROOM ID OPEN DATE 1 1 1 2000 01 01 00 00 00 2 2 1 2000 01 01 00 00 00
  • 向现有列添加自动增量,而不影响当前记录值

    我想将列类型更改为AUTO INCREMENT在现有的MyISAM1数据库表 数据库目前有数千条记录 其中列值非常重要 当前值不受影响至关重要 我想从最新的最高值开始递增 我在 phpmyadmin 中尝试了此操作 由 phpmyadmin
  • 编译 SCSS 时出现误报“未定义变量”错误

    使用 ruby compass gem 编译 SCSS 时收到错误消息 run var lib gems 1 8 gems compass 0 12 2 bin compass compile out unchanged sass part
  • 从 python dataframe 列中删除非 json 对象行

    我有一个数据框 该列包含 json 对象和字符串 我想删除不包含 json 对象的行 下面是我的数据框的样子 import pandas as pd df pd DataFrame A hello world a 5 b 6 c 8 usa