python数据处理详情
目录
- 一,前言
- 二,python模块
- 2.1,增加停用词表
- 2.2,顺序读取
- 2.3,lambda函数
- 三,运行
- 3.1,存入文件
一,前言 我们现在拿到了一个十分庞大的数据集。是
json
文件,里面存储了将近十万个数据,现在要对其中的数据进行清洗处理。文章图片
二,python模块
import jsonimport jieba
我们需要用json模块来处理json文件,和使用jieba库来分析词性,这样可以实现我们的需求。
2.1,增加停用词表
停用词表.txt,把停用词表存入
stopwords
,原因是:我们的目标分析json里有一些标点符号。stopwords = [line.strip() for line in open("停用词表.txt",encoding="utf-8").readlines()]
基本如图所示:
文章图片
a+str(b)+c
这是文件名称,a+b+c=./json/poet.song.0.json b
递增,实现动态取值with open(a+str(b)+c,'r',encoding='utf8')as fp:
因为有将近500个json文件。每个文件里有好几千组数据,我现在尽力的优化代码,现在提取一次,把需要的数据存入文件里面差不多需要五分钟。
2.2,顺序读取
- 定义一个空的字符串,将json对象转换为python对象。定义一个空的list存放诗句。
- 循环
json_data i
为里面的每一个元素。 - 新的追加到
list_paragraphs
列表 - 循环 j为里面的每一句。
文章图片
使用jieba库,分析str内容的词性【注意是名称,动词。。。。】排行输出都是俩个字是巧合,没有字数限制
words = jieba.lcut(str_s)
现在words为分析完毕的词性列表,遍历。
排除特殊符号
for word in words:if word not in stopwords:if len(word) == 1:continueelse:counts[word] = counts.get(word,0) + 1
出现频率加一。
2.3,lambda函数
使用lambda函数,sort快速排序,遍历输出频率前50的词性。
items.sort(key=lambda x:x[1], reverse=True)
之后赋值
word
, count
。word, count = items[i]print ("{:<10}{:>7}".format(word, count))
三,运行
文章图片
3.1,存入文件
f=open('towa.txt',"a",encoding='gb18030')f.writelines("题目:"+textxxx)f.writelines(word_ping)
文章图片
【python数据处理详情】到此这篇关于python数据处理详情的文章就介绍到这了,更多相关python数据处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Python中常用的内置函数
- 3种Python|3种Python 实现酷炫进度条的实用方法
- Python MySQL – Where子句用法详细介绍
- python3 time.sleep()函数解释 – Python3教程
- python3时间time模块 – Python3教程
- python3将时间戳转为日期,将日期转为时间戳 – Python3教程
- python3获取当前时间 – Python3教程
- 如何在python3中获取当前日期和时间( – Python3教程)
- python3将字符串转为时间、日期(strptime() – Python3教程)
- python3将时间、日期转为字符串(strftime() – Python3教程)