一、前言

大家好,我是Python进阶者,上个礼拜的时候,我的Python交流群里有个名叫程序的大佬,头像是绿色菜狗的那位,在Python交流群里边的人应该都知道我说的是哪个大佬了,他提供了一份初始淘宝数据,数据乍看上去非常杂乱无章,但是经过小小明大佬的神化处理之后,一秒就变清晰了,真是太神了。

然后就有了后续的数据分词处理和可视化等内容了,可能群里的人平时工作太忙,没有来得及看群消息,作为热心的群主,这里给大家整理成一篇文章,感兴趣的小伙伴,可以去实操一下,还是可以学到很多东西的。言归正传,一起来学习下今天的数据分析内容吧。

二、原始数据预处理

1、原始数据

在未经过处理之前的数据,长这样,大家可以看看,全部存储在一个单元格里边了,看得十分的让人难受。如下图所示。

按照常规来说,针对上面的数据,我们肯定会选择Excel里边的数据分列进行处理,然后依次的去根据空格、冒号去分割,这样可以得到一份较为清晰的数据表,诚然,这种方法确实可行,但是小小明大佬另辟蹊径,给大家用Python中的正则表达式来处理这个数据,处理方法如下。

2、原始数据预处理

小小明大佬直接使用正则表达式re模块和pandas模块进行处理,方法可谓巧妙,一击即中,数据处理代码如下。

import re
import pandas as pd
result = []
with open(r"淘宝数据.csv") as f:for line in f:row = dict(re.findall("([^:\t]+):([^:\t]+)", line))if row:result.append(row)
df = pd.DataFrame(result)
df.to_excel('new_data.xlsx', encoding='utf-8')
print(df)

之后我们可以看到效果图,如下图所示,这下是不是感觉到清爽了很多呢?

至此,我们对原始的数据进行了预处理,但是这还不够,我们今天主要的目标是对上面数据中的两列:配料表和保质期进行数据分析,接下来继续我们的数据处理和分析。

三、对配料表和保质期列进行处理

一开始的时候,程序大佬对配料表和保质期这两列的数据进行处理,但是来回得到的分词中总有一些特殊字符,如下图所示,我们可以看到这些字符里边有%、顿号、空格等内容。

我们都知道,这些是我们不需要的字符,当时我们在群里讨论的时候,我们就想到使用停用词去针对这些扰人的字符进行处理,代码如下。

# 创建停用词list
def stopwordslist(filepath):stopwords = [line.strip() for line in open(filepath, 'r', encoding='gbk').readlines()]return stopwords# 对句子进行分词
def seg_sentence(sentence):sentence_seged = jieba.cut(sentence.strip())stopwords = stopwordslist('stop_word.txt')  # 这里加载停用词的路径outstr = ''for word in sentence_seged:if word not in stopwords:if word != '\t':outstr += wordoutstr += " "return outstr

其中stop_word.txt是小编之前在网上找到的一个存放一些常用特殊字符的txt文件,这个文件内容可以看看下图。

如上图所示,大概有1894个词左右,其实在做词频分析的时候,使用停用词去除特殊字符是经常会用到的,感兴趣的小伙伴可以收藏下,也许后面你会用到呢?代码和数据我统一放到文末了,记得去取就行。经过这一轮的数据处理之后,我们得到的数据就基本上没有太多杂乱的字符了,如下图所示。

得到这些数据之后,接下来我们需要对这些词语做一些词频统计,并且对其进行可视化。如果还有想法的话,也可以直接套用词云模板,生成漂亮的词云图,也未尝不可。

四、词频统计

关于词频统计这块,小编这里介绍两种方法,两个代码都是可以用的,条条大路通罗马,一起来看看吧!

方法一:常规处理

这里使用的是常规处理的方法,代码亲测可用,只需要将代码中的1.txt进行替换成你自己的那个需要分词统计的文档即可,然后系统会自动给你生成一个Excel表格和一个TXT文件,内容都是一样的,只不过一个是表格,一个是文本。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-import sys
import jieba
import jieba.analyse
import xlwt  # 写入Excel表的库# reload(sys)
# sys.setdefaultencoding('utf-8')if __name__ == "__main__":wbk = xlwt.Workbook(encoding='ascii')sheet = wbk.add_sheet("wordCount")  # Excel单元格名字word_lst = []key_list = []for line in open('1.txt', encoding='utf-8'):  # 1.txt是需要分词统计的文档item = line.strip('\n\r').split('\t')  # 制表格切分# print itemtags = jieba.analyse.extract_tags(item[0])  # jieba分词for t in tags:word_lst.append(t)word_dict = {}with open("wordCount_all_lyrics.txt", 'w') as wf2:  # 打开文件for item in word_lst:if item not in word_dict:  # 统计数量word_dict[item] = 1else:word_dict[item] += 1orderList = list(word_dict.values())orderList.sort(reverse=True)# print orderListfor i in range(len(orderList)):for key in word_dict:if word_dict[key] == orderList[i]:wf2.write(key + ' ' + str(word_dict[key]) + '\n')  # 写入txt文档key_list.append(key)word_dict[key] = 0for i in range(len(key_list)):sheet.write(i, 1, label=orderList[i])sheet.write(i, 0, label=key_list[i])wbk.save('wordCount_all_lyrics.xls')  # 保存为 wordCount.xls文件

方法二:使用Pandas优化处理

这里使用Pandas方法进行处理,代码如下,小编也是亲测有效,小伙伴们也可以去尝试下。

def get_data(df):# 将食品添加剂这一列空的数据设置为无# print(df)df.loc[:,'食品添加剂'] = df['食品添加剂'].fillna('无')df.loc[:,'保质期'] = df['保质期'].fillna('无')df.loc[:, '配料表'] = df['配料表'].fillna('无')#  分词并扩展提取names = df.配料表.apply(jieba.lcut).explode()#  过滤长度小于等于1的词并去重df1 = names[names.apply(len) > 1].value_counts()with pd.ExcelWriter("taobao.xlsx") as writer:df1.to_excel(writer, sheet_name='配料')df2 = pd.read_excel('taobao.xlsx', header=None, skiprows=1, names=['column1', 'column2'])print(df2)

上面两个代码都是可以用的,最后得到的表格数据,如下图所示。

从上图我们可以看到配料表里边的配料占比详情,有了上述的数据之后,接下来我们就可以对其进行可视化操作了。关于可视化的内容,小编也给大家已经准备好了,等待下一篇原创文章,给大家输出,敬请期待。

五、总结

大家好,我是Python进阶者。本文写到这里,基本上就告一段落了。本文基于一份杂乱的淘宝原始数据,利用正则表达式re库和Pandas数据处理对数据进行清洗,然后通过stop_word停用词对得到的文本进行分词处理,得到较为”干净“的数据,之后利用传统方法和Pandas优化处理两种方式对数据进行词频统计,针对得到的数据。

下一步将利用Pyecharts库,进行多重可视化处理,包括但不限于饼图、柱状图、Table表、漏斗图、极化图等,通过一系列的改进和优化,一步步达到想要的效果,可以说是干货满满,实操性强,亲测有效。

左手Python,右手Java,升职就业不愁啦!

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

手把手教你用Pandas库对淘宝原始数据进行数据处理和分词处理相关推荐

  1. 手把手教你用Python模拟登录淘宝

    作者 | 猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟 ...

  2. 手把手教你使用Python轻松打造淘宝主图视频生成神器

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 人世几回伤往事,山形依旧枕寒流. ...

  3. 手把手教你用Python模拟登录淘宝 !

    最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! Python资源共享群:626017123 看了下网上有很多关于模拟登录淘宝,但是基本都 ...

  4. python数据分析图_Python数据分析:手把手教你用Pandas生成可视化图表的教程

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  5. 阿里云 IP 地理位置库(淘宝IP库)实践(前篇)

    阿里云 IP 地理位置库(淘宝IP库)实践(前篇) 最近的几个项目对于 IP 查询需求愈发强烈,使用免费数据库和在线接口已经不能够满足我们的需求.于是我们使用了阿里云(IP地理位置库) (淘宝IP地址 ...

  6. 阿里云 IP 地理位置库(淘宝IP库)实践(后篇)

    阿里云 IP 地理位置库(淘宝IP库)实践(后篇) 上篇文章提到如何在容器环境中使用阿里云离线IP地理位置库,前文中测试性能看起来满足日常离线小样本.低频率私密调用性能没有大的问题,但是针对大量数据的 ...

  7. 手把手教你用Pandas读取所有主流数据存储

    导读:从常见的Excel和CSV到JSON及各种数据库,Pandas几乎支持市面上所有的主流数据存储形式. 作者:李庆辉 来源:大数据DT(ID:hzdashuju) Pandas提供了一组顶层的I/ ...

  8. 手把手教你使用Pandas读取结构化数据

    导读:Pandas是一个基于Numpy库开发的更高级的结构化数据分析工具,提供了Series.DataFrame.Panel等数据结构,可以很方便地对序列.截面数据(二维表).面板数据进行处理. 作者 ...

  9. 运用selenium库写淘宝抢购详解【3】(文末附带源码)

    #每日一更[3] 今天讲的是用selenium库写一个淘宝抢购程序,10.19亲测可用 1.淘宝抢购的思路和上一篇的思路类似,通过打开浏览器筛选浏览器内的标签,并点击来实现自动化 #下面来想一下思路 ...

最新文章

  1. php分页显示页数代码,php-Codeigniter分页显示结果数和页数
  2. Json.Net学习笔记
  3. 你玩《2048》能拿多少分?AI的最高分纪录:401912
  4. 【STM32 .Net MF开发板学习-17】Wifi遥控智能小车
  5. Redhat 7 yum源换成centos的YUM 源
  6. KDE Web开辟工具──KDE-Webdev
  7. ami编码设计流程图_Openplant智慧电厂BIM设计-很强大(艾三维BIM分享)
  8. 分布式版本控制系统Git的安装与使用(作业2)
  9. JVM调优总结(2):基本垃圾回收算法
  10. 在Linux中su和sudo区别,Linux中su和sudo的用法和区别
  11. 10个 Python 工程师,9个不合格!!
  12. 电脑开机启动修复无法自动修复此计算机,Win7系统开机无法自动修复此计算机如何解决...
  13. python cv2 轮廓的包络 面积_Python + Opencv2 实现轮廓提取,轮廓区域面积计算
  14. solr的安装使用tomcat容器
  15. 网狐 游戏服务器 没有反应_游戏行业该怎么选择服务器?
  16. wpf 切换搜狗输入法英文_搜狗输入法使用技巧整理,建议保存收藏
  17. 【大数据部落】用R挖掘Twitter数据
  18. visual studio 2013 快速安全ocx(ActiveX控件)开发
  19. the little schemer 笔记(1)
  20. 【C/C++基础进阶系列】特殊函数总结

热门文章

  1. 吾尝终日而思矣,不如须臾之所学也
  2. 什么软件可以增加图片分辨率?教大家一招无损修改图片分辨率
  3. “网抑云”,缺的是梗吗?
  4. Java中值传递还是引用传递(三个例子说明)
  5. 工信部整治平台网址屏蔽问题,打击互联网行业垄断任重道远
  6. Exploratory Social Network Analysis with Pajek(第三版)3
  7. 手机怎么批量克隆剪同款视频
  8. Java基于springboot+vue的电子相册管理系统 前后端分离node
  9. php 只允许用户单线登陆,电信宽带IPTV只用路由简单设置单线复用和R6300v2使用经验分享...
  10. 数据结构,链表基本操作