Python数据挖掘方法及应用

王斌会 王术 电子工业出版 2019.3

【第2章 数据挖掘的分析基础】数据与练习2

(请在#下面问题的空白处写出代码并输出结果)


2.1 调查数据。某公司对财务部门人员是否抽烟进行调查,结果为:

否,否,否,是,是,否,否,是,否,是,否,否,是,是,否,是,否,否,是,是。

请用value_count函数统计人数,并绘制条图,按颜色区分是否。

2.2 医学数据:对一组50人的饮酒者所饮酒类进行调查,把饮酒者按红酒(1)、白酒(2)、黄酒(3)、啤酒(4)分成四类。调查数据如下:

3,4,1,1,3,4,3,3,1,3,2, 1,2,1,3,4,1,1,3,4,3,3,1,3,2,1,2,1,2,3,2,3,1,1,1,1,4,3,1,2,3,2,3,1,1,1,1,4,3,1。

(1)请用value_count()函数统计饮酒人数,用pie()函数绘制饼图,并按颜色和文字区分酒的类型

(2)请用value_count()函数构建自己的计数频数表函数

(3)请自定义一个计数数据的频数表生成函数和频数图绘制函数

2.3 工资数据。上述企业财务部员工的月工资数据如下:

2050,2100,2200,2300,2350,2450,2500,2700,2900, 2850,3500,3800,2600,3000,3300,3200,4000,3100,4200,3500。

(1)试用mean、median、var、sd函数求数据的均值、中位数、方差、标准差。

(2)绘制该数据的散点图和直方图,应用hist函数构建自己的计量频数表函数。

(3)请自定义一个计量数据的频数表生成函数和频数图绘制函数。

2.4 经理年薪。收集某沿海发达城市2015年66个年薪超过10万元的公司经理的收入(单位:万元)为

11,19,14,22,14,28,13,81,12,43,11,16,31,16,23,42,22,26,17,22, 13,27,108,16,
43,82,14,11,51,76,28,66,29,14,14,65,37,16,37,35,39,27,14,17,13,38,28,40,
85,32,25,26,16,120,54,40,18,27,16,14,33,29,77,50,19,34。

(1)可以对这些薪酬的分布状况作何分析?

对于这些年薪的分布状况,可以对其平均数、中位数、方差、标准差进行统计分析,也可以制作频数分布表、分布图分析。

(2)试通过编写计算基本统计量的函数来分析数据的集中趋势和离散程度。

(3)试分析为何该数据的均值和中位数差别如此之大,方差、标准差在此有何作用?如何正确分析该数据的集中趋势和离散程度?

该数据的均值与中位数差别较大的原因是:这66个经理的年薪中,有几个经理年薪值较大,从而提高了平均年薪水平。方差与标准差反映了66个经理年薪偏离平均年薪的程度较大,因此本题中平均年薪并不能准确反映66个经理年薪的一般水平。故在该数据中,可以通过年薪的中位数27万元来反映集中程度,通过极差、四分位差等反映其离散程度,较为可靠。

(4)绘制该数据的散点图和直方图。

(5)请用自定义函数生成频数表和频数图。

2.5 economics数据集(来自pydataset包)给出了美国经济增长变化的数据。该数据是数据框格式,由478行和6个变量组成,变量如下。

date:日期,单位为月份;psavert:个人存款率;pce:个人消费支出,单位为十亿美元;
uemploy:失业人数,单位为千人;unempmed:失业时间中位数,单位为周;pop:人口数,单位为千人。
请用matplotlib,pandas两种绘图方法绘制统计图:    

matplotlib 绘图

(1)以date为横坐标,unemploy/pop为纵坐标画折线图。

(2)以date为横坐标,unemploy为纵坐标画折线图。

pandas 绘图