基于python的音乐数据分析_基于Python的亚马逊音乐产品评论分析
一、分析背景
数据集:亚马逊乐器评论数据集
数据来源:https://www.kaggle.com/eswarchandt/amazon-music-reviewswww.kaggle.com
数据描述:
这是ISRO给出的问题陈述,用于对客户意见进行分类。这将有助于组织了解客户反馈。文件包含reviewer ID , User ID, Reviewer Name, Reviewer text, helpful, Summary(obtained from Reviewer text),Overall Rating on a scale 5, Review time等9个字段。
数据字段理解:
reviewerID - 评论用户ID. 例如:A2SUAM1J3GNN3B
asin - 产品编号, 例如 0000013714
reviewerName - 用户昵称
helpful - 评论的帮助性评级, e.g. 2/3
reviewText - 评论内容
overall - 产品评分,满分5分
summary - 评论摘要
unixReviewTime - 评论日期(unix时间戳,解释:unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数)
reviewTime - 评论日期 (自然时间,正常的日期时间显示)
二、分析目的
根据亚马逊乐器购买用户的评论数据,分析产品的评分情况,分离出音乐产品好评差评的关键热词。
三、分析思路
1、哪个时期购买音乐产品的用户反馈比较积极?产品评分情况怎么样?
2、音乐产品的评论热度情况?产品的评分如何?
3、综合所有用户评论,用户评价主要体现为哪些词汇?
四、分析内容
1、数据清洗
加载必要的数据分析模块:
import numpy as np #数学处理模块
import pandas as pd #数据分析工具库
import matplotlib.pyplot as plt #数据分析工具库,主要用于作图
import seaborn as sns #一种美化表格的分析库
加载亚马逊乐器评论数据集:
review_data = pd.read_csv(r'E:\Musical_instruments_reviews.csv')
review_data.head()#观察数据前5行
观察整个数据的信息,包括数目条数、数据类型:
#查看缺失值
review_data.info()
#共计数据10261条数据,发现reviewerName、reviewText有缺失记录,需要进一步查看数据
一致化处理:
发现日期列reviewTime数据类型不是我们需要的日期格式,所以需要转换数据类型,这里需要导入datetime模块:
#一致化处理
#数据类型转换:reviewTime数据类型不是日期格式,需要转换为date类型
from datetime import datetime#引入datetime模块
review_data['reviewTime']=pd.to_datetime(review_data['reviewTime'],format='%m %d, %Y')#format要与时间格式一致
review_data.info()#再次查看info,日期类型为datetime64[ns]
日期数据已成功转换为datetime格式。
查看缺失值:
共计数据10261条数据,发现reviewerName、reviewText有缺失记录,需要进一步查看数据:
#查看缺失的数据情况,发现27条数据没有用户姓名信息,但是有评论信息,考虑到真实性,这部分评论数据需要去掉,
review_data.drop(review_data[review_data['reviewerName'].isna()].index,inplace=True)
#使用isna定位到reviewerName列缺失的索引,对源数据使用drop删除,删除后剩余10234条数据
review_data.info()
#查看缺失的数据情况,发现7条数据没有具体评论内容,但是有评论摘要以及用户姓名,这部分数据给予保留
review_data[review_data['reviewText'].isna()].info()
2、数据可视化
根据分析思路,对问题进行数据可视化以及数据验证
1、论点:哪个时期购买音乐产品的用户反馈比较积极?产品评分情况怎么样?
论据:
#增加评论年份列
review_data['Year'] = review_data['reviewTime'].map(lambda x :x.year)#使用map函数提取时间的年份,并统计评论数
sns.set(font='SimHei')#设置sns中文标签显示
fig = plt.figure(figsize=(9,5))
sns.countplot('Year',data=review_data,palette='viridis')
plt.title('2004-2014年亚马逊音乐产品评论数')
plt.grid(False)#隐藏网格线
plt.savefig('2004-2014年亚马逊音乐产品评论数.png')#保存图片
plt.show()
分结论:用户评论来自2004年-2014年,主要的评论来源: 26.1%的评论来自于2014年,39.5%的评论来自于2013年,18.9%的评论来自于2012年,9.81%的评论来自于2011年。
fig = plt.figure(figsize=(9,5))
sns.countplot('overall',data=review_data,palette='viridis')
plt.title('2004-2014年亚马逊音乐产品评分情况')
plt.grid(False)#隐藏网格线
plt.savefig('2004-2014年亚马逊音乐产品评分情况.png')
plt.show()
分结论:从打分情况来看,亚马逊音乐产品的评分很不错,给与5分评价的用户占比达67.6%,给与低分评价的用户比较少,表明亚马逊音乐产品的整体质量比较不错,用户评分高。
2、论点:音乐产品的评论热度情况?产品的评分如何?
论据:
由于亚马逊音乐产品种数多达900种,可以取出评论数最多前20的音乐产品、评论数最少前20的音乐产品。
评论数最多前20的音乐产品:
fig = plt.figure(figsize=(9,5))
raw_data1 = review_data['asin'].value_counts()[0:20]#由于有900中音乐产品,取出评论数top20的产品
sns.barplot(x=raw_data1.index,y=raw_data1,palette='viridis')
plt.title('2004-2014年亚马逊音乐产品评论热度-top20')
plt.xticks(rotation=90)#设置x轴标签垂直
plt.grid(False)#隐藏网格线
plt.savefig('2004-2014年亚马逊音乐产品评论热度-top20.png')
plt.show()
观察评论数最多的top20音乐产品的评分情况:
#评论数top20的产品评分情况
fig = plt.figure(figsize=(15,9))
raw_data1 = review_data['asin'].value_counts()[0:20]
top_20 = review_data[review_data['asin'].isin(raw_data1.index)]
sns.countplot('asin',data=top_20,hue='overall',palette='viridis')
plt.xticks(rotation=90)#设置x轴标签垂直
plt.title('评论热度-top20音乐产品评分情况')
plt.savefig('评论热度-top20音乐产品评分情况.png')
plt.show()
结论:评论热度top20的音乐产品中,给与5分好评的用户居多,绝大部分用户对产品都比较满意。
评论数最少前20的音乐产品:
fig = plt.figure(figsize=(9,5))
raw_data2 = review_data['asin'].value_counts()[-20:]#由于有900中音乐产品,取出评论数bottom20的产品
sns.barplot(x=raw_data2.index,y=raw_data2,palette='viridis')
plt.title('2004-2014年亚马逊音乐产品评论热度-bottom20')
plt.xticks(rotation=90)#设置x轴标签垂直
plt.grid(False)#隐藏网格线
plt.savefig('2004-2014年亚马逊音乐产品评论热度-bottom20.png')
plt.show()
3、论点:综合所有用户评论,用户评价主要体现为哪些词汇?
论据:
对5分好评、差评(评价2分以内)的评论做主要分析,采用词云图展示评论高频词,先码上云图的资料供学习参考:WordCloud for Python documentationamueller.github.ioamueller/word_cloudgithub.com
处理关键词数据:
#5分好评
key_words = review_data[review_data['overall']==5]['summary'].values#统计评价为5分的评论摘要
words_list=[]#新建空列表储存关键词
for word in key_words:
l = word.split(' ')#以空格把评论摘要拆分成关键词,返回的是列表
for i in l:
words_list.append(i)#用for循环把拆分后的列表储存到空列表
fig = plt.figure(figsize=(9,5))
words_df = pd.DataFrame(words_list,columns=['评论热词'])
hot_words = words_df['评论热词'].value_counts()[0:20]
sns.barplot(x=hot_words.index,y=hot_words,palette='viridis')
plt.title('5分好评关键词-top20')
plt.xticks(rotation=90)#设置x轴标签垂直
plt.grid(False)#隐藏网格线
plt.savefig('5分好评关键词.png')
plt.show()
创建5分好评的词云图:
#采用云图把评论摘要的高频关键词显示出来
from wordcloud import WordCloud
from PIL import Image#导入图片处理模块
from wordcloud import ImageColorGenerator#导入颜色生成器模块
words = ','.join(words_list)
plt.figure(figsize=(60,60))
wc = WordCloud(
font_path='simhei.ttf',
background_color='white',
width=2380,
height=1900,
).generate(words)
plt.imshow(wc)
plt.axis('off')
plt.savefig('5分好评关键词云.png')
plt.show()
结论:亚马逊的音乐产品好评高,通过关键词出现的频率,除去一些与产品评论无关的词汇(如:for,the,i,to,my等等),这些评价热词是关键:用户体验上:grea,good,nice,perfect;产品质量上:sound音质,string和弦,quality质量,tuner调谐器。
同样的方法,继续分析评分较低(小于等于2分)的热词:
#差评(2分以内)
bad_key_words = review_data[review_data['overall']<3]['summary'].values#统计评价为5分的评论摘要
bad_words_list=[]#新建空列表储存关键词
for word in bad_key_words:
l = word.split(' ')#以空格把评论摘要拆分成关键词,返回的是列表
for i in l:
bad_words_list.append(i)#用for循环把拆分后的列表储存到空列表
bad_words = ','.join(bad_words_list)
plt.figure(figsize=(60,60))
wc = WordCloud(
font_path='simhei.ttf',
background_color='white',
width=2380,
height=1900,
).generate(bad_words)
plt.imshow(wc)
plt.axis('off')
plt.savefig('差评关键词云.png')
plt.show()
相反,在产品评分在2分以内的评论热词,可以看见否定词出现的比较多,比如:not,does no,产品质量上:cheap低品质,not work无法使用,broke损坏等。作为B2C平台的亚马逊,客户的产品评价会直接影响到销售额提升,因此,对于差评商品及时对供应链和渠道进行抽样排查,确保差评出现是小概率事件。
五、分析结论
亚马逊平台的音乐产品的用户评价总体上偏高,客户对于产品满意度高,而音乐产品的差评反映客户对平台产品的关注情况主要为品质和音质,需要加强发货前的产品质量检测力度,确保客户收到的产品优质。
分析得比较粗略,如有不足,欢迎深入交流
基于python的音乐数据分析_基于Python的亚马逊音乐产品评论分析相关推荐
- amazon应用程序开发_亚马逊音乐是流媒体应用程序的黑马
amazon应用程序开发 重点 (Top highlight) In their 1993 classic, The 22 Immutable Laws of Marketing, Al Ries a ...
- python + selenium在亚马逊下载产品主图
python + selenium 在亚马逊下载产品主图 下载的图片是1000像素的,即卖家上传的图片 import requests import xlwings from selenium imp ...
- python多维数据分析_使用python进行数据分析
Life is short, I use python! 1 python中常用的数据分析包 2 python:一维数据分析 2.1 用numpy包进行一维数据分析 import numpy as n ...
- python实现食品推荐_Python分析亚马逊赞不绝口食物评论
1.背景: 本文是来源于Kaggle平台的亚马逊50多万条食物评论的数据集.此数据集采集时间跨度有十余年,直到2012年十月份共计有56万多条评论信息. 这些信息由食品产品号.用户信息.评分和评价文本 ...
- Python爬虫实战之二:requests-爬取亚马逊商品详情页面
本实战项目是中国大学MOOC国家精品课程<Python网络爬虫与信息提取>(by 嵩天 北京理工大学)学习笔记.代码段均可在ide中运行by now(2021-11-29). 目录 1.爬 ...
- 【数据分析案例】2020年亚马逊商品评论数据分析
亚马逊商品评论数据分析 <2020年美国数学建模竞赛C题:亚马逊商品评论数据分析>的解题思路与代码. 题目介绍 亚马逊网上商城为客户提供了对交易进行评分和评价的机会.客户可以提供三种评价内 ...
- 禁止查看写好的宏_【收藏】亚马逊Listing不知道怎么写??看完此篇,即刻破单!...
[收藏]亚马逊Listing不知道怎么写??看完此篇,即刻破单! 众所周知,在亚马逊平台上大部分交易来自于排位靠前的listing决定的,可见listing的重要性.这里有不少新卖家在选完品之后,不知 ...
- 基于python的房地产数据分析_基于Python的数据分析
转载 | CSDN 编辑 | 雷课小雷 下面来介绍一下基于Python的数据分析,主要介绍数据分析的概念.数据分析流程.Python优势.常用模块的用途以及使用Python进行数据分析的学习方法及步骤 ...
- 用python进行股票数据分析_利用python进行股票数据分析
个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...
- python足球大数据分析_使用Python抓取欧洲足球联赛数据进行大数据分析
背景 Web Scraping 在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤 数据的采集和获取 数据的清洗,抽取,变形和装载 数据的分析,探索和预测 数据的展现 其中 ...
最新文章
- NSNotification先注册监听,再发送消息
- 【必须收藏】那些酷炫的深度学习网络图怎么画出来的?
- linux 常用命令 (firewall,netstat)
- iOS之深入解析如何编写自己的CocoaPods插件
- 2019年3月前端面试题
- 《MySQL——如何解决一主多从的读写分离的过期读问题》
- pytorch tensor的数据类型
- 绘制完成的cad图纸文件应使用哪一款看图软件进行查看?
- osi模型_OSI模型
- withRouter有什么用?干嘛用?为啥要用它啊???一分钟理解!
- 直播APP系统源码,直播系统源码 直播系统源码
- 数学4如何用计算机画正切函数图像,正切函数图像
- MySQL期末复习题(题库)
- php cookie 注入,LiveZilla 'setCookieValue()'函数PHP对象注入漏洞
- 塑胶卡扣弹性计算公式_塑胶产品结构设计卡扣
- 微软:今天起加速推广Windows 11,让更多设备免费升级
- java快捷键格式化_在Java中Format的快捷键是什么?
- 【CSDN英雄会】黄帅:安全不是独行侠而是系统性的运维过程
- 论文导读|《Exploiting Rich Syntactic Information for Semantic Parsing with Graph-to-Sequence Model》
- 剪切后的文件可以恢复吗?恢复剪切文件怎么办?