【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)

# 前面已经对数据进行了初步清洗。Python暂时搞不定的,用excel先搞定了应应急。

# 下面正式开始数据分析

# 导入常用模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 读取卡罗拉口碑数据文件
corolla1=pd.read_csv("D:\\2018_BigData\\Python\\Python_files_Notebook\\Decision on buying cars COROLLA or LEVIN\\corolla_1st_deal.csv",encoding="ANSI")
corolla1.head(1)

# 发现有31列那么多。。。23+1+2+5,还是得drop一些列,清爽一些先。

Unnamed: 0 name-text 车型 购买地点 购车经销商 购买时间 nakedprice driven-distance 发表时间 空间 ... reviews 购车目的1 购车目的2 购车目的3 购车目的4 购车裸车价 行驶里程 支持人数 阅览人数 评论人数
0 1 八号零陈 2018款 双擎 1.8L E-CVT智尚版 北京 北京中业丰田 2018年12月 14.18 2500 2019/1/13 4 ... 29 购物 接送小孩 14.18?万元 2500?公里 有36人支持该口碑 有82222人看过 评论(29)

1 rows × 31 columns

# 删除多余列——其实本来可以在Excel里将多出的6列先删除。
corolla2=corolla1.drop(["Unnamed: 0","购车裸车价","行驶里程","支持人数","阅览人数","评论人数"],axis=1)
corolla2.head(1)
name-text 车型 购买地点 购车经销商 购买时间 nakedprice driven-distance 发表时间 空间 动力 ... 内饰 性价比 购买车型 support read reviews 购车目的1 购车目的2 购车目的3 购车目的4
0 八号零陈 2018款 双擎 1.8L E-CVT智尚版 北京 北京中业丰田 2018年12月 14.18 2500 2019/1/13 4 3 ... 4 4 卡罗拉 2018款 双擎 1.8L E-CVT智尚版?>> 36 82222 29 购物 接送小孩

1 rows × 25 columns

# 同样,导入levin口碑数据并删除多余列
levin1=pd.read_csv("D:\\2018_BigData\\Python\\Python_files_Notebook\\Decision on buying cars COROLLA or LEVIN\\levin_1st_deal.csv",encoding="ANSI")
levin2=levin1.drop(["Unnamed: 0","购车裸车价","行驶里程","支持人数","阅览人数","评论人数"],axis=1)
levin2.head(1)
name-text 车型 购买地点 购车经销商 购买时间 nakedprice driven-distance 发表时间 空间 text-cont ... 内饰 性价比 购买车型 support read reviews 购车目的1 购车目的2 购车目的3 购车目的4
0 VOLVO110 2018款 双擎 1.8H GS-V CVT尊贵版 国V 广州 广汽丰田天河店 2018年11月 13.18 3300 2018/11/29 4 【最满意的一点】最满意当然是油耗,还有就是能在广州摇节能号,广州人都知道摇号不是一般的难啊,... ... 3 3 雷凌 2018款 双擎 1.8H GS-V CVT尊贵版 国V?>> 26 47833 25 上下班 自驾游 泡妞 跑长途

1 rows × 25 columns

corolla2.shape
(405, 25)
levin2.shape
(340, 25)
# 好了,至此,统一corolla和levin的数据列,且都是有效数据样本。
# 按照之前拟好的分析框架思路,先看下裸车价格分布

plt.hist(corolla2['nakedprice'],bins=18)
plt.xlabel("购车裸车价",fontproperties="SimHei",fontsize=18)
plt.ylabel("数量",fontproperties="SimHei",fontsize=18)
plt.title("Nakedprice Distribution",fontsize=20)
plt.show()   # 此语句可不用。

# 发现有个漏网之鱼,数值为2左右。估计是Excel里填充的时候出错或者源数据有误。
# 速战速决,就不用Python替换了,直接回去Excel里搞定,顺便检查一下其他填充处理的几列有没有异常值。

# Excel处理完后,回Python更新数据,得到如下直方图。

# 可见,卡罗拉裸车价分布主要集中在11~12.8万,14.5~15.3万,对应两个价位区间的车型及客户群体。

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第1张图片

# 其实之前的分析框架是根据行业经验定下的,现在既然有数据了,那先把框架放一边,先继续看看数据呈现。
# 先试试提取一列
price=corolla2["nakedprice"]
price.head(5)
0    14.18
1    11.28
2    14.43
3    14.18
4    14.28
Name: nakedprice, dtype: float64
# 然后试试提取两列。
# 为什么要提取两列呢?因为后面有一些画图,data来源是两列或多列表格。需要提取定义。

# area_price=corolla2["nakedprice","购买地点"]
# area_price.head(5)

# 运行报错  KeyError: ('nakedprice', '购买地点')
# 以为是“购买地点”中文字符的原因,就替换成了“driven-distance”再试,也是报同样的KeyError,说明不是字符格式问题。
area_price=corolla2[["nakedprice","购买地点"]]
area_price.head(5)

# 尝试corolla2(["nakedprice","购买地点"]),错误
# 尝试corolla2(["nakedprice","购买地点"]).values,错误
# 尝试corolla2.ix(["nakedprice","购买地点"]),错误
# ……
# 找了好久都找不到提取两列数据的方法,终于在这里找到了,原来加多一个中括号就搞定——http://www.sohu.com/a/289195562_468731
nakedprice 购买地点
0 14.18 北京
1 11.28 泉州
2 14.43 郑州
3 14.18 沈阳
4 14.28 上海
# 耍耍帅,购车裸车价这列,再用其他可视化形式看看
# 箱型图

plt.figure(figsize=(16,4))
sns.boxplot(y="nakedprice",x="购买地点",data=area_price)

# 是不是可能,并不需要提取两列就可以画箱线图呢?我们下面试试。

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第2张图片

# sns.boxplot(x="购买地点",y="nakedprice",data=corolla2)

# 运行结果与上面完全一致,果然不用提取两列,刚刚又白忙活了。。。不过就当做get个技能吧——提取两列数据。
# 发现横轴很拥挤,城市太多,导致看不清细节。
# 我们尝试一下筛选几个重要城市出来看看。
corolla_cityhead=corolla2.groupby(["购买地点"])["nakedprice"].agg(["mean","count"])
corolla_cityhead=corolla_cityhead.sort_values(by="count",ascending=False)
corolla_cityhead=corolla_cityhead.iloc[:20].reset_index()
corolla_cityhead
购买地点 mean count
0 西安 12.803333 36
1 长沙 13.228571 21
2 濮阳 13.604211 19
3 郑州 12.942000 15
4 武汉 12.318571 14
5 南昌 13.770769 13
6 武威 12.412727 11
7 铜陵 13.483636 11
8 西宁 12.216364 11
9 昌吉 13.911111 9
10 乌鲁木齐 12.095556 9
11 宜春 13.001250 8
12 哈尔滨 12.366250 8
13 北京 12.642500 8
14 天津 12.600000 8
15 威海 11.750000 8
16 青岛 12.322500 8
17 盘锦 11.320000 7
18 亳州 12.480000 7
19 沈阳 12.641429 7
city=corolla_cityhead["购买地点"]
corolla_city=corolla2[["购买地点","nakedprice"]][corolla2["购买地点"].isin(city)]
print(corolla_city.shape)
print()
print(corolla_city.head(10))

# 购买数量最多的前10个城市,总共售出160台。占总数 405 的 38%。
(238, 2)

   购买地点  nakedprice
1    北京       14.18
3    郑州       14.43
4    沈阳       14.18
12   西安       12.48
13   北京       10.70
15   长沙       14.98
18   濮阳       12.70
19   威海       14.78
25   青岛       14.38
26   西安       14.60
# 重新绘制箱型图
plt.figure(figsize=(16,4))
sns.boxplot(x="购买地点",y="nakedprice",data=corolla_city)
plt.show()

# 发现有一些异常值。居然没有广州上榜。。
# 根据个人认知,明明丰田的生产地在广州,广东对日系车的接受度也较高,广州地区丰田价格又比较有优势。
# So,发生了什么事呢?

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第3张图片


corolla2.columns
Index(['车型', '购买地点', '购车经销商', '购买时间', 'nakedprice', 'driven-distance', '发表时间',
       '空间', '动力', '操控', '油耗', '舒适性', 'text-cont', '外观', '内饰', '性价比', '购买车型',
       'support', 'read', 'reviews', '购车目的1', '购车目的2', '购车目的3', '购车目的4'],
      dtype='object')
corolla2.index

# 为嘛这个index是第一列name-text呢?如何改变index呢?
Index(['八号零陈', '辛亦', '张某某9390', 'Hy_Bird', 'terebi', '初始化記憶', 'an2m9wtr8',
       'yychong', '买车套路深我要回农村', 'YY殇夏',
       ...
       '桂昌承', '周姐卡罗拉', '蛮蛮大哥', '_花开划落', '巫巫巫巫', '6666666_6', '千里sss', 'cllhtt',
       '淡定的小老虎不咬人', 'Smilence_Li'],
      dtype='object', name='name-text', length=405)
corolla2.index = range(1,len(corolla2)+1) # 将index改成从1开始
corolla2.head(3)
# 不见了第一列,不过还好,第一列不是重要数据,暂时先忽略。
name-text 车型 购买地点 购车经销商 购买时间 nakedprice driven-distance 发表时间 空间 动力 ... 内饰 性价比 购买车型 support read reviews 购车目的1 购车目的2 购车目的3 购车目的4
1 八号零陈 2018款 双擎 1.8L E-CVT智尚版 北京 北京中业丰田 2018年12月 14.18 2500 2019/1/13 4 3 ... 4 4 卡罗拉 2018款 双擎 1.8L E-CVT智尚版?>> 36 82222 29 购物 接送小孩
2 辛亦 2018款 1.2T S-CVT GL智享版 泉州 泉州宾联# 2019年1月 11.28 4361 2019/3/25 4 3 ... 4 5 卡罗拉 2018款 1.2T S-CVT GL智享版?>> 5 9570 9 接送小孩 接送小孩
3 张某某9390 2018款 双擎 1.8L E-CVT智尚版 郑州 郑州裕华丰田 2018年9月 14.43 5339 2018/9/13 4 5 ... 1 4 卡罗拉 2018款 双擎 1.8L E-CVT智尚版?>> 101 200279 51 自驾游 接送小孩

3 rows × 25 columns

# 重新看看index
corolla2.index

# 形式都变了,又懵了。算了先不管了。
RangeIndex(start=1, stop=406, step=1)
# 因箱线图横轴太多地区导致看不清,各种尝试只选少数几个地区例如广州,都失败。那就先放弃箱线图了。

# area_price2=corolla2[["nakedprice","购买地点"="广州"]]
# sns.boxplot(y="nakedprice",x="购买地点",data=area_price2)

# 运行报错 SyntaxError: invalid syntax
# 用饼图看看各车型购买比例
# 先看看有什么车型
corolla2['车型']
# 这个显示,把所有数据都显示出来了,而我们想要的,只是各个车型只显示一次。
# 好了那接下来研究一下,怎样把车型提取出来且只显示一次,或者直接透视统计它们的数量,方便绘制饼图
1        2018款 双擎 1.8L E-CVT智尚版
2        2018款 1.2T S-CVT GL智享版
3        2018款 双擎 1.8L E-CVT智尚版
4        2018款 双擎 1.8L E-CVT智尚版
5        2018款 双擎 1.8L E-CVT智尚版
6        2018款 1.2T S-CVT GL智享版
7        2018款 1.2T S-CVT GL智享版
8        2018款 双擎 1.8L E-CVT智尚版
9      2018款 1.2T S-CVT GL-i智辉版
10     2018款 1.2T S-CVT GL-i智辉版
11       2018款 1.2T S-CVT GL智享版
12     2018款 1.2T S-CVT GL-i智辉版
13       2018款 1.2T S-CVT GL智享版
14       2018款 1.2T S-CVT GL智享版
15       2018款 双擎 1.8L E-CVT智尚版
16       2018款 1.2T S-CVT GL智享版
17       2018款 双擎 1.8L E-CVT智尚版
18     2018款 1.2T S-CVT GL-i智辉版
19       2018款 双擎 1.8L E-CVT智尚版
20     2018款 1.2T S-CVT GL-i智辉版
21     2018款 1.2T S-CVT GL-i智辉版
22       2018款 双擎 1.8L E-CVT智尚版
23     2018款 1.2T S-CVT GL-i智辉版
24       2018款 1.2T S-CVT GL智享版
25       2018款 双擎 1.8L E-CVT智尚版
26       2018款 双擎 1.8L E-CVT智尚版
27       2018款 双擎 1.8L E-CVT智尚版
28       2018款 双擎 1.8L E-CVT智尚版
29       2018款 双擎 1.8L E-CVT智尚版
30       2018款 双擎 1.8L E-CVT智尚版
                 ...           
376      2018款 1.2T S-CVT GL智享版
377    2018款 1.2T S-CVT GL-i智辉版
378    2018款 1.2T S-CVT GL-i智辉版
379    2018款 1.2T S-CVT GL-i智辉版
380      2018款 双擎 1.8L E-CVT智尚版
381    2018款 1.2T S-CVT GL-i智辉版
382      2018款 1.2T S-CVT GL智享版
383      2018款 双擎 1.8L E-CVT智尚版
384    2018款 1.2T S-CVT GL-i智辉版
385      2018款 双擎 1.8L E-CVT智尚版
386      2018款 1.2T S-CVT GL智享版
387    2018款 1.2T S-CVT GL-i智辉版
388      2018款 1.2T S-CVT GL智享版
389      2018款 1.2T S-CVT GL智享版
390    2018款 1.2T S-CVT GL-i智辉版
391      2018款 1.2T S-CVT GL智享版
392      2018款 双擎 1.8L E-CVT智尚版
393      2018款 双擎 1.8L E-CVT智尚版
394    2018款 1.2T S-CVT GL-i智辉版
395      2018款 1.2T S-CVT GL智享版
396      2018款 1.2T S-CVT GL智享版
397      2018款 1.2T S-CVT GL智享版
398    2018款 1.2T S-CVT GL-i智辉版
399      2018款 双擎 1.8L E-CVT智尚版
400    2018款 1.2T S-CVT GL-i智辉版
401      2018款 1.2T S-CVT GL智享版
402      2018款 双擎 1.8L E-CVT智尚版
403      2018款 1.2T S-CVT GL智享版
404    2018款 1.2T S-CVT GL-i智辉版
405    2018款 1.2T S-CVT GL-i智辉版
Name: 车型, Length: 405, dtype: object
# 找到了一个 unique 函数,来试试
# corolla2.unique()

# 运行出错 AttributeError: 'DataFrame' object has no attribute 'unique'
# 换个函数再试
# corolla2.apply(pd.Series.value_counts)

# 运行没报错,不过结果一片狼藉,有点乱。先隐藏起来,再找找其他方法。
# 回到前面两步,把“查看列信息”和“unique”函数结合起来,发现接近我们想要的了。
corolla2['车型'].unique()

# 车型已出,还差统计计数。试试count函数。
array(['2018款 双擎 1.8L E-CVT智尚版', '2018款 1.2T S-CVT GL智享版',
       '2018款 1.2T S-CVT GL-i智辉版'], dtype=object)
# count函数一试就出结果了,撒花~~~
corolla2['车型'].value_counts()
# 或者 corolla2['车型'].value_counts(dropna=False)

# 那接下来应该怎么根据这些信息绘制饼图呢?
2018款 1.2T S-CVT GL智享版      166
2018款 双擎 1.8L E-CVT智尚版      120
2018款 1.2T S-CVT GL-i智辉版    119
Name: 车型, dtype: int64
cartype=corolla2['车型'].unique()
cartpye
array(['2018款 双擎 1.8L E-CVT智尚版', '2018款 1.2T S-CVT GL智享版',
       '2018款 1.2T S-CVT GL-i智辉版'], dtype=object)
# 尝试将不同的车型各自计数
i=0
for cartype in corolla2['车型']:
    i+=1
print(i)
# 结果为405,明显是三种车型的总和,而不是单个车型的数量。所以此方法错误。
# 接下来再找找其它方法。
405
count_cartype = corolla2["车型"].value_counts()
count_cartype
2018款 1.2T S-CVT GL智享版      166
2018款 双擎 1.8L E-CVT智尚版      120
2018款 1.2T S-CVT GL-i智辉版    119
Name: 车型, dtype: int64
# 拟提取count_cartype的第二列,即计数,作为饼图的sizes
count_cartype[1]
# 但结果仅出一个数字120,而不是一列数字。莫名其妙。
# 不过只有三个数字,我们可以先手动输入饼图的sizes应急。
120
# 忍不住,再试试,将原数据替换成list格式
count_cartype2=np.array(count_cartype) 
count_cartype2
# 结果好像有点正常了。
array([166, 120, 119], dtype=int64)
cartype2=np.array(cartype) 
cartype2
# 这个结果又出幺蛾子了。。。只有一个值。。。其他两个呢。。。
array('2018款 1.2T S-CVT GL-i智辉版', dtype='
# labels=cartype
# sizes=[120,166,119]
# explode=(0,0.1,0)
# plt.pie(sizes,explode=explode,labels=labels,autopct="%1.1f%%",shadow=False,startangle=90)

# 运行报错 ValueError: 'label' must be of length 'x'
# 初步估计是 cartype 格式不对,无法被 plt.pie 识别。这个格式问题下次再研究,这次先手动复制解决。
labels=['2018款 双擎 1.8L E-CVT智尚版','2018款 1.2T S-CVT GL智享版','2018款 1.2T S-CVT GL-i智辉版']
sizes=[120,166,119]
explode=(0,0.1,0)

plt.axis("equal")
plt.pie(sizes,explode=explode,labels=labels,autopct="%1.1f%%",shadow=False,startangle=90)
plt.show()

# 首先,说明在卡罗拉的三款车型里,
# 2018款 1.2T S-CVT GL智享版市场占有率最高,占到了40%以上,大众青睐;
# 其次,另外两款市场占有率不相上下。

# 发现中文字符没有正确显示。接下来是时候解决中文字符问题了。
# 至于标题,好办。

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第4张图片

from pylab import mpl

# 指定默认字体:解决plot不能显示中文问题*

mpl.rcParams['font.sans-serif'] = ['SimHei']

plt.axis("equal")
plt.pie(sizes,explode=explode,labels=labels,autopct="%1.1f%%",shadow=False,startangle=90)
plt.show()

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第5张图片

# 接下来,看看购车目的。
# 先看卡罗拉
corolla2.head(1)
name-text 车型 购买地点 购车经销商 购买时间 nakedprice driven-distance 发表时间 空间 动力 ... 内饰 性价比 购买车型 support read reviews 购车目的1 购车目的2 购车目的3 购车目的4
1 八号零陈 2018款 双擎 1.8L E-CVT智尚版 北京 北京中业丰田 2018年12月 14.18 2500 2019/1/13 4 3 ... 4 4 卡罗拉 2018款 双擎 1.8L E-CVT智尚版?>> 36 82222 29 购物 接送小孩

1 rows × 25 columns

# 取出购车目的标签
# 并把购车目的中的“无”去掉,防止干扰词云生成

col = ["购车目的1","购车目的2","购车目的3","购车目的4"]
purchasegoal_col=pd.DataFrame(corolla2,columns=col)
purchasegoal_col=purchasegoal.replace("无","")   # 经尝试,drop、where都不行,适用于list而不适用于dataframe。
purchasegoal_col.head()
购车目的1 购车目的2 购车目的3 购车目的4
1 购物 接送小孩
2 接送小孩 接送小孩
3 自驾游 接送小孩
4 自驾游 自驾游
5 购物 自驾游
# 将购车目的标签生成文本,待用
purchasegoal_col.to_csv(r"D:/2018_BigData/Python/Python_files_Notebook/Theme_Practice/Decision on buying cars COROLLA or LEVIN/purchasegoal_col.txt",index=False)
# 打开购车目的标签文本,观察内容

import jieba

filename = "D:/2018_BigData/Python/Python_files_Notebook/Theme_Practice/Decision on buying cars COROLLA or LEVIN/purchasegoal_col.txt"
with open(filename, 'r', encoding="utf-8") as f:  # 经尝试,参数“r”不能替换成“rb”,会报错。
    text = " ".join(jieba.cut(f.read()))
text
'购车 目的 1 , 购车 目的 2 , 购车 目的 3 , 购车 目的 4 \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 上下班 , 跑 长途 , , \n 自驾游 , 跑 长途 , , \n 自驾游 , 跑 长途 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 跑 长途 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 跑 长途 , , \n 购物 , 跑 长途 , , \n 购物 , 跑 长途 , , \n 购物 , 跑 长途 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 上下班 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 接送 小孩 , 购物 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 商务 接送 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 购物 , 自驾游 , , \n 跑 长途 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 上下班 , 自驾游 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 跑 长途 , , \n 购物 , 商务 接送 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 商务 接送 , , \n 自驾游 , 商务 接送 , , \n 自驾游 , 商务 接送 , , \n 接送 小孩 , 商务 接送 , , \n 接送 小孩 , 商务 接送 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 跑 长途 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 跑 长途 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 跑 长途 , , \n 接送 小孩 , 跑 长途 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 购物 , , \n 接送 小孩 , 购物 , , \n 自驾游 , 购物 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 跑 长途 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 泡妞 , , \n 接送 小孩 , 泡妞 , , \n 接送 小孩 , 泡妞 , , \n 接送 小孩 , 泡妞 , , \n 接送 小孩 , 泡妞 , , \n 自驾游 , 泡妞 , , \n 购物 , 自驾游 , , \n 拉货 , 接送 小孩 , , \n 拉货 , 接送 小孩 , , \n 拉货 , 接送 小孩 , , \n 拉货 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 上下班 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 自驾游 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 购物 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 接送 小孩 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 越野 , , \n 购物 , 越野 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 跑 长途 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 自驾游 , 自驾游 , , \n 接送 小孩 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 自驾游 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n 购物 , 接送 小孩 , , \n'
# 呼唤(import)词云包,利用 text 中存储的文本内容来制造词云
from wordcloud import WordCloud
wordcloud = WordCloud().generate(text)

# 完成词云解析。
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")

# 中文乱码,稍后解决。接下来先尝试另一种分词方法。

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第6张图片

# 从导入文件开始,使用另一种方式。

# """
# 使用蒙版图片和wordcloud生成任意形状的词云
# """
# 指明语料数据和蒙版图片的文件路径
from os import path
d = path.dirname("D:/2018_BigData/Python/Python_files_Notebook/Theme_Practice/Decision on buying cars COROLLA or LEVIN/")

# 读取语料数据文件
# 含有中文的文件要使用“rb”以二进制格式读取,否则会出现编码错误
text = open(path.join(d, 'purchasegoal_col.txt'), "rb").read()

# 使用jieba进行中文分词
mytext = " ".join(jieba.cut(text))
# 读取蒙版图片
from PIL import Image
alice_mask = np.array(Image.open(path.join(d, "car3.jpg")))

# 暂定最大词汇数为1000000
# wc = WordCloud(font_path="data_analysis-tactic.txt", background_color="white", max_words=1000000, mask=alice_mask,
#                stopwords=stopwords, contour_width=3, contour_color="steelblue")


# 生成词云
wc = WordCloud(font_path="C:\Windows\Fonts\simfang.ttf", background_color="white", mask=alice_mask,
               contour_width=3, contour_color="steelblue").generate(mytext)  # 此行报错
# wc=WordCloud().generate(mytext)  # 此行语句可正常运行


# 存储到文件
wc.to_file(path.join(d, "purchasegoal_col.png"))

# 展示词云结果
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
# plt.figure()
# plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
# plt.axis("off")
plt.show()

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第7张图片

# 拉罗拉之后,来看雷凌的购车用途


# 取出购车目的标签

col = ["购车目的1","购车目的2","购车目的3","购车目的4"]
purchasegoal_levin=pd.DataFrame(levin2,columns=col)
purchasegoal_levin=purchasegoal.replace("无","") 
purchasegoal_levin.head()

# 将购车目的标签生成文本,待用
purchasegoal_levin.to_csv(r"D:/2018_BigData/Python/Python_files_Notebook/Theme_Practice/Decision on buying cars COROLLA or LEVIN/purchasegoal_levin.txt",index=False)

# 读取语料数据文件
# 含有中文的文件要使用“rb”以二进制格式读取,否则会出现编码错误
text = open(path.join(d, 'purchasegoal_levin.txt'), "rb").read()

# 使用jieba进行中文分词
mytext = " ".join(jieba.cut(text))
# 读取蒙版图片
from PIL import Image
alice_mask = np.array(Image.open(path.join(d, "car3.jpg")))

# 暂定最大词汇数为1000000
# wc = WordCloud(font_path="data_analysis-tactic.txt", background_color="white", max_words=1000000, mask=alice_mask,
#                stopwords=stopwords, contour_width=3, contour_color="steelblue")


# 生成词云
wc = WordCloud(font_path="C:\Windows\Fonts\simfang.ttf", background_color="white", mask=alice_mask,
               contour_width=3, contour_color="steelblue").generate(mytext)  # 此行报错
# wc=WordCloud().generate(mytext)  # 此行语句可正常运行


# 存储到文件
wc.to_file(path.join(d, "purchasegoal_levin.png"))

# 展示词云结果
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
# plt.figure()
# plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
# plt.axis("off")
plt.show()

【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)_第8张图片

你可能感兴趣的:(商业分析项目集锦,Python,决策分析,汽车选购)