Python实战系列<一> | 正则提取数据并绘图

简介: Python实战系列<一> | 正则提取数据并绘图

大家好,我是欧K~

本期给大家分享《Python实战系列》的第一篇文章:正则提取数据并绘图,该系列主要来自粉丝的实际问题,后期会不断更新,希望对你有所帮助,如有疑问或者需要改进的地方可以私信小编。任务描述:取txt文件各语言数据绘制折线图,data.txt文件截图如下(太长了直截了一部分):


乍一看很像json格式的文件,实际上不是


进入正题:

🏳️‍🌈 1. 读取数据

with open('data.txt') as f:
    data = f.read()


🏳️‍🌈 2. 正则提取花括号{}里面的信息

datas = re.findall('({.*?})',data)

内容基本上就是编程语言各日期的占比情况,接下来就是提取日期信息和数据信息了。


🏳️‍🌈 3. 提取name,注意转义(')

re.findall('\'(.*)\'',datas[0])[0]


🏳️‍🌈 4. 提取日期和数据,注意数据小数点

re.findall('(\d+(\.\d+)?)',datas[0])

每4个数据为一组,所以做个step=4的循环即可:

for i in range(0,len(datas_tmp),4):
    datas_f.append(float(datas_tmp[i+3][0]))
    dates_f.append(f'{datas_tmp[i][0]}-{datas_tmp[i+1][0]}-{datas_tmp[i+2][0]}')


🏳️‍🌈 5. 数据提取部分完整代码

# 处理数据
with open('data.txt') as f:
    data = f.read()
datas = re.findall('({.*?})',data)
names = []
dates_result = []
datas_result = []
for idx,dd in enumerate(datas):
    datas_f = []
    dates_f = []
    name = re.findall('\'(.*)\'',dd)[0]
    names.append(name)
    datas_tmp = re.findall('(\d+(\.\d+)?)',dd)
    for i in range(0,len(datas_tmp),4):
        datas_f.append(float(datas_tmp[i+3][0]))
        dates_f.append(f'{datas_tmp[i][0]}-{datas_tmp[i+1][0]}-{datas_tmp[i+2][0]}')
    datas_result.append(datas_f)
    dates_result.append(dates_f)


🏳️‍🌈 6. 绘图

绘图部分直接用matplotlib的plot循环绘制即可,代码如下:

# 绘图
plt.figure(figsize=(20, 10), dpi=100)
for i in range(len(names)):
    plt.plot(dates_result[i], datas_result[i], label=names[i])
ax = plt.gca()
ax.xaxis.set_major_locator(ticker.MultipleLocator(20))
plt.ylabel("Ratings(%)", fontdict={'size': 16})
plt.title("TIOBE Programming Community Index", fontdict={'size': 20})
plt.legend(loc='best')
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()


数据可以在后台回复: data.txt 获取。

END


以上就是本期为大家整理的全部内容了,喜欢的朋友可以点赞、点在看也可以分享让更多人知道。

相关文章
|
25天前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
101 3
|
25天前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
318 2
|
10天前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
12天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
12天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
177 0
|
10天前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
12天前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
18天前
|
开发工具 Android开发 开发者
用Flet打造跨平台文本编辑器:从零到一的Python实战指南
本文介绍如何使用Flet框架开发一个跨平台、自动保存的文本编辑器,代码不足200行,兼具现代化UI与高效开发体验。
143 0
|
20天前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
98 0
|
21天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。

推荐镜像

更多