# #!-*- coding:utf-8 -*-

import pandas as pd

import numpy as np

import xlrd

import vaderSentiment

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

from sklearn.preprocessing import StandardScaler

from openpyxl import load_workbook # 写入excel

from wordcloud import WordCloud as wc

import jieba # 结巴分词

import matplotlib.pyplot as plt # 绘图

from collections import defaultdict # 字典,用于词频统计

from PIL import Image # 打开图片,用于词云背景层

import cv2

from pyecharts.charts import Bar

import datetime

from pandas import Series

# #######################################################################################

# 1.读取数据与数据预处理

# data = pd.read_csv("C:\\Users\\thous\\PycharmProjects\\untitled4\\2018Q3.csv")

hair_dryer = pd.read_csv("C:\\Users\\thous\\PycharmProjects\\untitled4\\hair_dryer.csv")

hair_dryer_review = hair_dryer['review_body']

# 删除重复数据

print('hair_dryer删除重复数据前大小:',hair_dryer.shape)

hair_dryer.drop_duplicates()

print('hair_dryer删除重复数据后大小:',hair_dryer.shape)

#查看是否有缺失值

hair_dryer.isnull().sum()

# #######################################################################################

# 2.计算三件商品评论的情感得分;

analyzer = SentimentIntensityAnalyzer()

hair_dryer_sentiments = [analyzer.polarity_scores(review_body) for review_body in hair_dryer_review]

# float() argument must be a string or a number, not 'dict'

# 'float' object has no attribute 'split',需要把float换成其他格式

# 特征格式变换

# data['term'] = data['term'].str.replace(' months', '').astype('float')

# col = data.select_dtypes(include=['int64', 'float64']).columns

# col = col.drop('loan_status') # 剔除目标变量

# 将得分作为新的数据列与hair_dryer数据合并;

hair_dryer = hair_dryer.join(pd.DataFrame(hair_dryer_sentiments))

# #######################################################################

# 4.将Date列转换为日期格式;时间分析

hair_dryer['review_date'] = pd.to_datetime(hair_dryer['review_date'])

# 5.将新的日期设置为index;

hair_dryer.set_index(hair_dryer['review_date'], inplace=True)

"""

hair_dryer['weekday'] = hair_dryer['review_date'].dt.weekday

df1 = hair_dryer.set_index('review_date')

df1.resample('D').size().sort_values(ascending=False).head(100)

df2 = df1.resample('M').size().to_period()

# df2 = df2.reset_index(df2['review_date'], inplace=True)

print(hair_dryer['weekday'])

weekday

0 1777

1 1702

2 1641

3 1849

4 1531

5 1536

6 1434

"""

# ###################################################################

# 获取带星期的简化日期,如:11-25周六

def getWeek(x):

tstr = x.strftime('%Y-%m-%d')

dDay = tstr.split('-', 1)[1]

weekDict = {0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Thursday', 4: 'Friday', 5: 'Saturday', 6: 'Sunday'}

dWeek = x.weekday()

return weekDict[dWeek]

hair_dryer['weekday'] = hair_dryer['review_date'].map(getWeek)

# print("weekday_hair_dryer", hair_dryer['weekday'])

weekday_hair_dryer = hair_dryer['weekday']

# hair_dryer = hair_dryer.join(pd.DataFrame(weekday_hair_dryer))

hair_dryer['month'] = pd.to_datetime(hair_dryer['review_date']).dt.month

# print("hair_dryer['month']", hair_dryer['month'])

month_hair_dryer = hair_dryer['month']

hair_dryer['months'] = hair_dryer['month']

hair_dryer = hair_dryer.drop(["month"], axis=1)

# #######################################################################################

# 购买量的增长情况

hair_dryer['date'] = pd.to_datetime(hair_dryer['review_date']).dt.strftime('%Y-%m-%d')

date_num = hair_dryer['date']

date_num.apply(pd.value_counts)

data_counts = hair_dryer['date'].value_counts()

# print(data_counts)

date_num_describe = date_num.describe()

"""

print(date_num_describe)

count 11470

unique 2307

top 2010-08-05

freq 146

"""

hair_dryer_describe = hair_dryer.describe()

# print(hair_dryer_describe)

hair_dryer_corr = hair_dryer.corr()

# print(hair_dryer_corr)

# data_counts.to_csv('hair_dryer_data_counts.csv')

# hair_dryer.to_csv('hair_dryer_new.csv')

# 手动读取,数据预处理

# #################################################################################

# 数据预处理完 我们调用新数据

hair_dryer_new = pd.read_csv("C:\\Users\\thous\\PycharmProjects\\untitled4\\hair_dryer_new.csv")

# hair_dryer = pd.read_csv("C:\\Users\\thous\\PycharmProjects\\untitled4\\hair_dryer.csv")

# hair_dryer_review = hair_dryer['review_body']

# #################################################################################

# 按产品id统计,并绘制散点图

hair_dryer_productid = hair_dryer_new['product_id'].value_counts().sort_values(ascending=False)

print("hair_dryer_productid", hair_dryer_productid)

# 很容易获取 前10后10的产品

# 如何对应他们的评分平均值 EXCEL,波士顿矩阵

# hair_dryer_productid.to_csv('hair_dryer_productid.csv')

# hair_dryer_productid.plot(kind='scatter')

# ValueError: plot kind scatter can only be used for data frames

# #################################################################################

# 统计指定单词出现的次数

"""

import sys

File_tuple1 = open(r'english.txt') #打开目标文件

File_tuple2 = File_tuple1.read()

File_tuple1.close()

File_list = File_tuple2.split(' ') #以空格来划分文件中的单词

#print(File_list)

x = input('请输入要查询的单词:')

a = 0

i = 0

for i in range(len(File_list)):

if File_list[i]==x:

a+=1

print (x,'在english.txt中出现的次数为',a, '次。')

"""

# ################################################################################################

# 预测

# hair_dryer_new = pd.read_csv("C:\\Users\\thous\\PycharmProjects\\untitled4\\hair_dryer_new.csv")

# 查看因变量情况

star_rating_hairdryer = hair_dryer_new['star_rating']

# print("star_rating_hairdryer", hair_dryer_new['star_rating'].value_counts())

sns.countplot(hair_dryer_new.star_rating)

# plt.tick_params(axis='x', labelsize=6)

plt.show()

词云1 ###############################################

hair_dryer_review_text = open(r"C:\\Users\\thous\\PycharmProjects\\untitled4\\hair_dryer_review.txt",

'r', encoding='UTF-8')

hair_dryer_text = hair_dryer_review_text.read()

cut_hair_dryer_text = " ".join(jieba.cut(hair_dryer_text))

color_mask_hair_dryer = cv2.imread('mask.jpg')

# coloring=np.array(Image.open("cat_new.jpg"))

# #获取背景图片,new.jpg

# alice_mask = np.array(Image.open(path.join(d, "alice_mask.png")))

cloud = wc(

# 设置字体,不指定就会出现乱码

font_path="C:\\Windows\\Fonts\\Times New Roman.TTF",

# font_path=path.join(d,'simsun.ttc'),

# 设置背景色

background_color='white',

# 词云形状

mask=color_mask_hair_dryer,

# 允许最大词汇

max_words=2000,

# 最大号字体

max_font_size=40

)

# 直接根据分词结果生成简单的词云图

wordcloud = wc().generate(cut_hair_dryer_text)

# wc = WordCloud(background_color="white", max_words=2000, mask=alice_mask, stopwords=stopwords)

# wordcloud = wd(width=1000, height=860, margin=2, font_path="simsun.ttf", background_color="white", max_font_size=180,

mask=myimg).fit_words(wordfrequency) # 根据词频字典生成词云

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis('off')# 不显示坐标轴

plt.show()

2015美国数学建模a代码c语言,美国数学建模比赛2020 MCM C题代码详解相关推荐

  1. 考研数学一数学二数学三真题1987年-2021年所有历年真题及详解

    考研数学一网盘链接:https://pan.baidu.com/s/1cMDYFlHI6YZ83KfbDDyExA  提取码:6666 考研数学二真题1987年-2021年所有真题及详解链接:http ...

  2. 考研数学二真题1987年-2022年所有历年真题及详解(高清无水印)

    下载链接:考研数学二真题1987-2022年所有历年真题及解析(高清无水印)https://download.csdn.net/download/m0_57324918/87483974 历年试卷真题 ...

  3. 考研数学一真题1987年-2022年所有历年真题及详解(高清无水印)

    下载链接 考研数学一真题1987年-2022年历年真题及详解(高清无水印)-其它文档类资源-CSDN下载考研数学一真题1987年-2022年所有历年真题及详解(高清无水印)1987-2022数学一历年 ...

  4. 1987-1993年考研数学二真题及其详解

    1987-1993年考研数学二真题及其详解 链接: https://pan.baidu.com/s/1Dx14X_kVTsUW1TSzVHvz_A 提取码: nwsd 复制这段内容后打开百度网盘手机A ...

  5. 1994-1999年考研数学二真题及其详解

    1994-1999年考研数学二真题及其详解 链接: https://pan.baidu.com/s/1D54A3IvtovuUVkB4cXSutA 提取码: f2gf 复制这段内容后打开百度网盘手机A ...

  6. 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】

    编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...

  7. [C语言] 单向链表的构建以及翻转算法_图文详解(附双向链表构建代码)

    [C语言]单向链表的构建以及翻转算法 一.基本概念 单向链表的链接方向是单向的,其中每个结点都有指针成员变量指向链表中的下一个结点,访问链表时要从头节点(带头节点的链表)或存储首个数据的节点(不带头节 ...

  8. 用c语言绘制数学函数图像,用c语言画数学函数图像.DOC

    用c语言画数学函数图像 时间:2007-02-13 作者:佚名 编辑:本站 点击: 2231 [评论] 符 outtextxy(CX+3,440-40*i,s); //以字符形式输出纵轴上的单位数字 ...

  9. c语言交通违章编程代码,C语言程序设计之交通处罚单管理系统报告材料内含代码...

    <C语言程序设计之交通处罚单管理系统报告材料内含代码>由会员分享,可在线阅读,更多相关<C语言程序设计之交通处罚单管理系统报告材料内含代码(34页珍藏版)>请在人人文库网上搜索 ...

最新文章

  1. Tensorflow— MNIST数据集分类简单版本
  2. word被锁定无法编辑怎么解锁_Word论文里的公式怎么编辑?这4个小工具帮你一分钟搞定!...
  3. 去除字符串中重复字符
  4. UA OPTI570 量子力学10 位置表象与动量表象
  5. EXCEL中VLOOKUP做精确匹配匹配后日期显示为00-Jan-00,教你如何解决
  6. 数据库修复Part1:创建自己的测试corrupt数据库
  7. C 和 C++字符串详解
  8. 新手程序员不知道的小技巧!
  9. 如何在合并复制中改变表结构?
  10. c语言枚举和结构体的区别,全面了解结构体、联合体和枚举类型
  11. 天宇优配|利好太多,写不下了!A股港股全线走高,股民嗨了
  12. HTML页面调用打印机打印pdf文件
  13. 基于anchor-free的目标检测算法CenterNet研究
  14. 飞腾服务器代理上网设置
  15. btcTrade_project
  16. 多看系统下载_看了辣么多的圣诞蛋糕,出事儿了吧?学吧——来自KA·MM店内的马卡拉劈柴蛋糕(已打包·可下载)...
  17. 在c语言中出现的int错误类型,【揭秘】C语言类型转换时发生了什么?
  18. C++snprintf的使用
  19. Adobe Acrobat XI 安装版和免安装版_PDF转换软件
  20. Android 10 SurfaceView 奔溃报错signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4

热门文章

  1. 处理时间_7_60个Mysql日期时间函数汇总
  2. Python KNN K近邻分类
  3. 调链接_古筝谱 |踏山河是七叔呢演唱歌曲 双手版 D调 简谱唱谱
  4. c++标准模板库STL【快速查找】【最全】【常用】【语法】
  5. Zookeeper是什么?
  6. 针对不同的系统的宏定义
  7. Linux Shell脚本去掉几类常见文件中的注释
  8. 研究人员发现利用Excel宏可发起跳板攻击
  9. 2020年全球云服务规模将达3900亿美元
  10. 美图HTTPS优化探索与实践