利用在京东上爬取的商品评论做分析

利用在京东上爬取的商品评论做分析

1.读入数据


Python中读入数据,查看数据

import pandas as pd
import re
import os
os.chdir("C:/Users/Administrator/Desktop")
base_data =  pd.read_excel('A.xls')
base_data.head()

利用在京东上爬取的商品评论做分析

2.对数据进行处理

base_data.drop_duplicates(inplace=True)#删除重复值
base_data.info()
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False#定义过后可以显示中文

sns.heatmap(base_data.isnull(), yticklabels=False, cbar=False, cmap='viridis', )  # yticklabels=False 不显示纵轴   cmap 颜色组
plt.title('缺失值查看')
plt.show()

把评论时间的字段进行修改,方便后续使用

base_data['评论时间']= base_data['评论时间'].astype(str)
base_data['评论时间']= base_data['评论时间'].apply(lambda x :re.sub("\D", "", x) )
base_data['评论时间'] = pd.to_datetime(base_data['评论时间'])# 将20200301转换为2021-03-01
base_data['评论时间'] = base_data['评论时间'].map(lambda x: 100*x.year + x.month) #只要年月例如202103
base_data.to_excel('C:\\Users\\Administrator\\Desktop\\test.xlsx') #把数据另存为桌面的xlsx格式

处理评论长度

import math
import numpy as np
base_data =  pd.read_excel('test.xlsx')
%time base_data['评论长度'] = base_data['评论内容'] .str.len()#增加字段:计算评论内容的字符长度
base_data['评论长度'] = base_data['评论长度'].astype(int)
base_data["评论长度"] = np.log10(base_data["评论长度"]) # 评论长度求对数

3.数据探索

# 进行单变量探索,绘制直方图
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False#定义过后可以显示中文
fig,ax = plt.subplots(nrows=1,ncols=5,figsize=(20,4))
base_data["回复数"].hist(ax=ax[0])
ax[0].set_title("Hist plot of 回复数")

base_data["点赞数"].hist(ax=ax[1])
ax[1].set_title("Hist plot of 点赞数")

base_data["图片数量"].hist(ax=ax[2])
ax[2].set_title("Hist plot of 图片数量")

base_data["时间跨度"].hist(ax=ax[3])
ax[3].set_title("Hist plot of 时间跨度")

base_data["评论长度"].hist(ax=ax[4])
ax[4].set_title("Hist plot of 评论长度")

利用在京东上爬取的商品评论做分析
对评论内容进行处理

import pandas as pd
import re
#去噪
r1 = '[\s+\.!\/_,$%^*(+\"\')]+|[::+——()?【】“”!,。?、~@#¥%……&*()]+'
r2 = '[^\u4e00-\u9fa5]'
base_data['评论内容1'] = base_data['评论内容'].str.replace(r1,'') #删除标点符号
base_data['评论内容1'] = base_data['评论内容'].str.replace(r2,'') #删除英文和数字
base_data['评论内容1'].drop_duplicates(inplace=True)#去除重复值
base_data['评论内容1']= base_data['评论内容1'].dropna() #删除标题中存在缺失值的行
base_data.index = range(base_data.shape[0])#恢复索引
data = base_data[base_data['评论内容1'].apply(len)>=4]#短句去除
data.shape
上一篇:STM32(1):点亮LED(上)


下一篇:.net新建控制器 视图 控制器向视图传值