已经以行和列格式存在的数据或者可以很容易地转换为行和列的数据,以便之后它可以很好地适合数据库,这被称为结构化数据。 例如CSV,TXT,XLS文件等。这些文件有一个分隔符,固定宽度或可变宽度,其中缺失值在分隔符之间表示为空白。 但有时候我们会得到一些行不是固定宽度的数据,或者它们只是HTML,图像或pdf文件。 这些数据被称为非结构化数据。 尽管可以通过处理HTML标签来处理HTML文件,但是来自Twitter的提要或来自新闻提要的纯文本文档可以在不具有分隔符的情况下不具有要处理的标签。 在这种情况下,我们使用来自各种python库的不同内置函数来处理文件。

读取数据

在下面的例子中,我们获取一个文本文件并读取文件,将文件中的每一行分隔开来。 接下来可以将输出分成更多的行和单词。 原始文件是一个包含描述Python语言的段落的文本文件。

filename = 'path\input.txt'

with open(filename) as fn:

# Read each line

ln = fn.readline()

# Keep count of lines

lncnt = 1

while ln:

print("Line {}: {}".format(lncnt, ln.strip()))

ln = fn.readline()

lncnt += 1

当执行上面的代码时,它会产生以下结果。

Line 1: Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.

Line 2: Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library.

Line 3: Python interpreters are available for many operating systems. CPython, the reference implementation of Python, is open source software and has a community-based development model, as do nearly all of its variant implementations. CPython is managed by the non-profit Python Software Foundation.

计数单词出现频率

可以使用计数器函数来计算文件单词的频率,如下所示。

from collections import Counter

with open(r'pathinput2.txt') as f:

p = Counter(f.read().split())

print(p)

当我们执行上面的代码时,它会产生以下结果。

Counter({'and': 3, 'Python': 3, 'that': 2, 'a': 2, 'programming': 2, 'code': 1, '1991,': 1, 'is': 1, 'programming.': 1, 'dynamic': 1, 'an': 1, 'design': 1, 'in': 1, 'high-level': 1, 'management.': 1, 'features': 1, 'readability,': 1, 'van': 1, 'both': 1, 'for': 1, 'Rossum': 1, 'system': 1, 'provides': 1, 'memory': 1, 'has': 1, 'type': 1, 'enable': 1, 'Created': 1, 'philosophy': 1, 'constructs': 1, 'emphasizes': 1, 'general-purpose': 1, 'notably': 1, 'released': 1, 'significant': 1, 'Guido': 1, 'using': 1, 'interpreted': 1, 'by': 1, 'on': 1, 'language': 1, 'whitespace.': 1, 'clear': 1, 'It': 1, 'large': 1, 'small': 1, 'automatic': 1, 'scales.': 1, 'first': 1})

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

html是非结构数据吗,Python处理非结构数据相关推荐

  1. 坚果云企业网盘:帮助企业规范管理非结构数据

    坚果云企业网盘:帮助企业规范管理非结构数据 现在是信息技术飞速发展的时代,很多人都不再用笔写字,没有电脑会议的记录也不记得了. 我们对电脑的依赖特别严重. 在办公室环境中,每天生成大量的电子文档,保存 ...

  2. python处理时间序列非平稳_手把手教你用Python处理非平稳时间序列

    简介 预测一个家庭未来三个月的用电量,估计特定时期道路上的交通流量,预测一只股票在纽约证券交易所交易的价格--这些问题都有什么共同点? 它们都属于时间序列数据的范畴!如果没有"时间" ...

  3. Python 求解非零和博弈的纳什均衡策略——以虚构的两个企业之间的商品价格博弈为例

    系列文章目录 目录 系列文章目录 文章目录 前言 一.模型的建立 二.算法的步骤 三.代码的实现 四.运行的结果 总结 前言 博弈论是研究具有斗争或竞争性质现象的数学理论和方法,它考虑游戏中的个体的预 ...

  4. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历

    顺便把Python用非递归实现二叉树后续遍历也写了. 其实前序中序和后续都是针对父节点说的.比如下面这个最简单二叉树. 前序就是ABC,父节点A在前 中序就是BAC,父节点A在中间 后序就是BCA,父 ...

  5. python将非0数视为false_python 面试题

    1.os.path与sys.path的区别是什么? os.path 主要用于系统文件路径的操作 sys.path 主要是python解释器的系统环境参数的操作 2.re模块中match和search方 ...

  6. python实现非标准正态分布下概率密度有关计算

    总目录:Python数据分析整理 之后马上要学习朴素贝叶斯算法了,为之后的学习做好铺垫,重新用python实现了一下数据正态性的检验.根据数据的均值方差,求出小于某个值的概率,或者根据概率求出这个值是 ...

  7. 《Dive Into Python》非死不可

    译者言: 早在 2008 年 8 月,我就曾在自己的博客发表了一篇<为什么<Dive into Python>不值得推荐>(http://blog.csdn.net/lanph ...

  8. 结构化数据、半结构数据和非结构数据的总结

    (一) (1)结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据) (2)非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和音频/视频信息等等 ...

  9. 我对结构化和非结构数据的理解

    现在网上对大数据有结构化和非结构化的争论,前者如XML,后者象网页上的文字.图片.音视频等内容.孰优孰劣,在这里我不想去评论它.我想说的是,应该换一个角度来看待这个问题,就是说,无论这些数据无论它外在 ...

最新文章

  1. [Nuxt.js]Nuxt项目启动如何跳过“Are you interested in participation?”
  2. matlab中patch命令_matlab 放大平移图形是超出边界问题的处理
  3. leetcode:242 : 有效的字母异位词
  4. HDU 3788 ZOJ问题
  5. springboot @PropertySource+@Value注入properties配置文件属性值
  6. 柱坐标系下的ns方程_麦克斯韦方程组小结
  7. 【复赛前排分享(二)】收好这份王牌优化指南,助你轻松上分无压力
  8. 开源要安全!Linux 基金会、GitHub、GitLab、Google 联合起来了!
  9. spring data jpa 条件分页查询
  10. FSEC大学生电动方程式赛车电气系统设计
  11. 如何修改docker容器的hostname
  12. dojo基础:dojo/request
  13. 绿荫工作室爱选修app内测
  14. ubuntu 检测网络状态命令
  15. MAC Nginx配置: open() “xxx/logs/error.log“ failed (2: No such file or direc
  16. 计算机基础知识(下)(操作系统简介)
  17. PORIS门禁控制器
  18. JS打开选择本地文件的对话框
  19. 图像标签 链接标签
  20. 01.消消乐填充的算法

热门文章

  1. 5G 改变社会的真相在这里!
  2. 双手无法敲代码的程序员,该如何编程?
  3. 知乎披露会员业务未来布局,融合社区内容深耕垂直领域
  4. 深入浅出 Vue 响应式原理!
  5. 百面机器学习!算法工程师面试宝典!
  6. JavaScript 中的垃圾回收和内存泄露如何处理?| 技术头条
  7. 18 岁少年盗取价值 90 万元加密货币,交易所被迫关停!
  8. 赶超 Python 与 Java,JavaScript 问鼎最受欢迎的编程语言
  9. 如何在 10 亿数中找出前 1000 大的数?
  10. 差评近一半,用 Python 分析胡歌的《猎场》到底值不值得看?