机器学习——机器学习数据加载与可视化实验
一、加载北京天气数据集
1、导入数据集
df = pd.read_csv('北京天气数据集.csv')
2、显示前5行和5五行数据
def head_tail():SEE1 = df.head()SEE2 = df.tail() # 查看前五行后五行数据print(SEE1)print("-" * 60)print(SEE2)
3、查看6月7日的天气
def Weather_wind():# print(df.index.values)ser1 = df.loc[df['日期'] == '/6/7', ['日期', '天气']]ser2 = df.loc[df['日期'] == '/6/7', ['日期', '风向']]print(ser1)print(ser2)
5、查看最高温度大于18度的天
def temp_18():# print(df['最高温度'].astype("float"))ser3 = df.loc[df['最高温度'] > 18, ['日期', '最高温度']]print(ser3)
二、数据集切片、修改和条件过滤
1、按最高最低温度新增平均温度列
def avg_temp():average = df['最高温度'] + df['最低温度']df['平均温度'] = average/2df.to_csv('北京天气数据集.csv', index=False, sep=',')
2、查看7月份的下雨天。
def m7_rain():df.set_index('日期', inplace=True)date = df['/7/1':'/7/31'].head(31)rain = date[date.天气.isin(['阵雨', '雷阵雨', '雷阵雨~多云', '多云~雷阵雨', '中雨~雷阵雨', '小雨~大雨', '暴雨', '雨夹雪', '暴雨~雷阵雨', '雷阵雨~大雨'])]print(rain)
3、统计全年晴天和雨天的天数。
def Sunny_rain():rain = df[df.天气.isin(['阵雨', '雷阵雨', '雷阵雨~多云', '多云~雷阵雨', '中雨~雷阵雨', '小雨~大雨', '暴雨', '雨夹雪', '暴雨~雷阵雨', '雷阵雨~大雨', '小雨~雨夹雪','小雨~多云', '多云~小雨', '大雨~小雨', '雷阵雨~中雨', '小雨~雷阵雨', '小雨~中雨', '中雨~小雨', '阴~小雨', '小雨~阴'])]print('共%d天有雨' % len(rain))sunning = df[df.天气.isin(['晴~多云', '多云~晴', '晴'])]print('共%d晴天' % len(sunning))
三、数据分组可视化过程
1、分组查看每种污染程度的天数和可视化数据。
def contaminated():良 = df[df.污染程度.isin(['良'])]优 = df[df.污染程度.isin(['优'])]轻度污染 = df[df.污染程度.isin(['轻度污染'])]中度污染 = df[df.污染程度.isin(['中度污染'])]重度污染 = df[df.污染程度.isin(['重度污染'])]a = ['良', '优', '轻度污染', '中度污染', '重度污染']b = [len(良), len(优), len(轻度污染), len(中度污染), len(重度污染)]series = np.array(b)plt.bar(x=list(a), height=series, color='tab:green', width=.5)plt.show()
2、可视化全年最高、最低和平均温度折线图。
def max_min_avg():plt.figure(figsize=(10, 5)) # 设置画布的尺寸plt.title('全年最高最低平均温度', fontsize=20) # 标题,并设定字号大小plt.xlabel(u'日期', fontsize=14) # 设置x轴,并设定字号大小plt.ylabel(u'温度', fontsize=14) # 设置y轴,并设定字号大小# color:颜色,linewidth:线宽,linestyle:线条类型,label:图例,marker:数据点的类型plt.plot(df['日期'], df['最高温度'], color="deeppink", linewidth=2, linestyle=':', label='最高温度', marker='o')plt.plot(df['日期'], df['最低温度'], color="darkblue", linewidth=1, linestyle='--', label='最低温度', marker='+')plt.plot(df['日期'], df['平均温度'], color="goldenrod", linewidth=1.5, linestyle='-', label='平均温度', marker='*')plt.legend(loc=2) # 图例展示位置,数字代表第几象限plt.show() # 显示图像
3、根据平均气温新增穿衣搭配推荐,要求大于20度穿短袖,大于10度穿衬衫,大于0度穿夹克,小于0度穿大衣,小于-10度穿棉袄。要求把穿衣类型做一个可视化分析。
def Clothing_recommendation():cloth = 0for i in df['平均温度']:if i < 0:cloth = '大衣'if i < -10:cloth = '棉袄'if i > 0:cloth = '夹克'if i > 10:cloth = '衬衫'if i > 20:cloth = '短袖'df['推荐穿衣'] = clothdf.to_csv('北京天气数据集.csv', index=False, sep=',')print(df)
三联再看 月入百万