如何解析非结构化表状数据?

2024-04-08

我有一个text file保存操作的一些结果。数据显示在human-readable format(就像一张桌子)。我如何解析这些数据,以便形成一个数据结构,例如dictionaries有了这个数据?

的一个例子unstructured data如下所示。

===============================================================
Title
===============================================================
Header     Header Header Header  Header       Header
1          2      3      4       5            6                   
---------------------------------------------------------------
1          Yes    No     6       0001 0002    True    
2          No     Yes    7       0003 0004    False    
3          Yes    No     6       0001 0001    True    
4          Yes    No     6       0001 0004    False    
4          No     No     4       0004 0004    True    
5          Yes    No     2       0001 0001    True    
6          Yes    No     1       0001 0001    False    
7          No     No     2       0004 0004    True

上例中显示的数据不是tab-separated or comma separated。它总是有一个header相应地,可能/可能没有值column-like外貌。

我尝试过使用基本的解析技术,例如regex and conditional checks,但我需要一种更强大的方法来解析这些数据,因为上面显示的示例并不是呈现数据的唯一格式。

Update 1:除了所示的示例之外,还有很多情况,例如添加更多列、单个单元格具有多个实例(但在下一行中直观地显示,而它属于上一行)。

有没有python库可以解决这个问题吗?

Can machine learning技术可以帮助解决这个问题而无需解析吗?如果是,这是什么类型的问题(分类、回归、聚类)?

===============================================================
Title
===============================================================
Header     Key_1   Header Header  Header       Header
1          Key_2   3      4       5            6                   
---------------------------------------------------------------
1          Value1  No     6       0001 0002    True
           Value2    
2          Value1  Yes    7       0003 0004    False    
           Value2
3          Value1  No     6       0001 0001    True    
           Value2
4          Value1  No     6       0001 0004    False    
           Value2  
5          Value1  No     4       0004 0004    True    
           Value2  
6          Value1  No     2       0001 0001    True    
           Value2  
7          Value1  No     1       0001 0001    False    
           Value2  
8          Value1  No     2       0004 0004    True
           Value2  

Update 2:它可能看起来像的另一个示例涉及具有多个实例的单个单元格(但在下一行中直观地显示,而它属于上一行)。


假设您的示例是“sample.txt”。

import pandas as pd

df = pd.read_table('sample.txt', skiprows=[0, 1, 2, 3, 5], delimiter='\s\s+')

print(df)
print(df.shape)

   1    2    3  4          5      6
0  1  Yes   No  6  0001 0002   True
1  2   No  Yes  7  0003 0004  False
2  3  Yes   No  6  0001 0001   True
3  4  Yes   No  6  0001 0004  False
4  4   No   No  4  0004 0004   True
5  5  Yes   No  2  0001 0001   True
6  6  Yes   No  1  0001 0001  False
7  7   No   No  2  0004 0004   True
(8, 6)

当然,您可以更改数据类型。请检查大量params http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_table.html of pd.read_table()。另外,还有method http://pandas.pydata.org/pandas-docs/stable/io.html适用于 xlsx、csv、html、sql、json、hdf,甚至剪贴板等。

欢迎来到pandas http://pandas.pydata.org/...

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

如何解析非结构化表状数据? 的相关文章

  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • XSD 嵌套元素

  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 具有关联数组的唯一数组 - 删除重复项

    我有一个包含一些重复项目的关联数组 例如 我有
  • 什么是 keyExtractor 参数

    我正在学习Comparator界面 我对它的静态感到困惑Comparator comparing 方法 关于Comparator comparing 方法的参数以及它如何使用方法引用 当我查看文档时 它说它有一个 keyExtractor
  • 如何开发才能利用64位系统?

    软件工程师 计算机科学的某些特定领域在针对 64 位系统进行开发时是否存在显着差异 我已经编码了大约 10 年 自从 64 位系统崩溃以来 我的代码没有改变过一丁点 哪些应用程序可以由单个编码员作为业余项目进行编码 并且需要您使用 64 位
  • Reactive Cocoa 限制信号一次只能发送给一名订阅者

    我需要在 RAC 中进行建模 我有一个 tabBarController 它将订阅通知信号 说推送通知 也说当前活动的视图控制器也可能想要订阅相同的信号 但是如果任何视图控制器订阅了它 tabBarController 就不想处理它 否则它
  • Spring表单:选择多个选定值?

    我有这个编辑表格 我希望选择用户的角色 如果这是一对多关系 我知道我可以这样做
  • 如何使 Redirect.INHERIT 和 System.setOut 一起工作

    这可能是一个微不足道的问题 但我无法轻易找到答案 我有一个简单的 Java 程序 System setOut new PrintStream new File stdout txt ProcessBuilder pb new Process
  • 如何使引导轮播上的文本保持不变,而图像移动?

    基本上 我让轮播正常工作 但我只希望图像能够过渡 但每张幻灯片上的文本都相同 理想情况下 文本不会移动 但图像会在背景中移动 这是一个例子 http www bootply com pINPxqzlJ2 http www bootply c
  • ProcessBuilder的正确使用

    经过研究 我注意到使用 java 的 ProcessBuilder 的 正确 方法是生成另外两个线程来管理新创建进程的 stdout stderr 的吞噬 这样它就不会挂起 如下所示 java世界文章 http www javaworld
  • django.db.utils.ProgrammingError:类型“raster”不存在

    我的模型 我在这里创建了 3 个模型 当我迁移时 我收到错误 from django contrib gis db import models from django contrib gis db models fields import
  • Maven 无法使用 OpenJDK 11 找到 jaxb-api,即使它存在于存储库中

    我有一台装有 Windows 操作系统的机器 它用于构建一些 WAR 项目 它有已安装 Java 8在上面 我在用Maven 3 2 5构建这些 WAR 项目 一切正常 但由于 Java 8 由于免费更新的结束而在未来会成为一个问题 所以我
  • 将轮分解添加到不定筛

    我正在修改埃拉托色尼的不定筛here https stackoverflow com a 10733621因此 它使用轮分解来跳过比当前仅检查所有赔率的形式更多的组合 我已经弄清楚了如何生成到达轮子上所有间隙所需的步骤 从那里我想我可以用
  • Azure DevOps 扩展中的节点密码警告 - 发布任务

    我正在开展一个开发 Azure DevOps 发布任务扩展的项目 最近 当发布任务运行时 我在日志中多次打印此警告消息 警告 使用 Cipheriv 作为 aes 256 ctr 的计数器模式 我没有更早得到它 当我开始收到此错误时 我只更
  • C 到 MIPS - 函数和数组

    我正在尝试将以下 C 代码转换为 MIPS 程序集 数组的基地址存储在 a0中 变量索引存储在 a1中 变量 x 存储在 t0 中 void ld array char array int index x array index 当索引是一
  • 如何通过 Grails 使用 imgscalr

    我最近几天才开始使用 Groovy 和 Grails 我之前没有任何 Java 经验 所以您必须原谅这个 可能 非常基本的问题 我搜索了 Google 和 Stack Overflow 但没有找到任何可以帮助我实际安装的内容 我已经可以上传
  • Elasticsearch 通过另一个文档查找文档

    我想在elasticsearch中搜索与id docId给定文档具有完全相同字段的文档 例如用户使用 docId 调用 api 我想过滤文档 以便返回的所有文档都满足 docId 中的某些参数 例如 我可以像这样查询 Elasticsear
  • TypeScript“保存时编译”功能在 Visual Studio 2015 中不起作用

    升级到 Visual Studio 2015 后 保存时编译 功能对我不起作用 当我对 ts将文件添加到我的项目中并保存 IDE 底部的状态栏显示Output s generated successfully 但是生成的 js文件没有改变
  • Linux/C下判断两个文件路径是否指向同一个文件?

    在Linux下 我有两个文件路径A和B const char A const char B 我现在想确定 我是否应该open 2 他们俩 int fda open A int fdb open B 我会在文件系统中打开同一个文件的两个文件句
  • Asp.Net Mvc 3 客户端验证、属性生成

    Asp net Mvc3 在输入元素上添加了一些自定义属性 例如 data val required 以执行验证 我知道这背后的所有理论 以及它是如何运作的 我想知道的是 当我在 using Html BeginForm 中创建表单时 它会
  • 如何使用seaborn为我的DataFrame创建堆积条形图[重复]

    这个问题在这里已经有答案了 我有一个数据框df df pd DataFrame columns App Feature1 Feature2 Feature3 Feature4 Feature5 Feature6 Feature7 Featu
  • 如何解析非结构化表状数据?

    我有一个text file保存操作的一些结果 数据显示在human readable format 就像一张桌子 我如何解析这些数据 以便形成一个数据结构 例如dictionaries有了这个数据 的一个例子unstructured dat