这个进阶作业有几位同学已经分析得挺详尽。之前把作业时间估计得有些乐观,实际做的过程中略微去探索一些新的问题作业的主线就时间不够了,内容比较少。
有感触数据分析人员如果对于所分析数据的业务背景和数据含义有更好地认识,个人认为最后的描述结果有更大概率能发现有实际意义的规律或特征,更好地指导工作。怎么在实际企业工作中让数据中的发现和真正的运营手段结合更紧密是这个职业的一个关键问题。
进阶作业天气数据分析
- 使用本课所学的方法,在Jupyter Notebook中分析天气数据weatherdata.csv
运行环境
- Jupyter Notobook 5.0.0
- Python 3.6.1
数据导入和初步观察
# 导入pandas模块
import pandas as pd
# 魔术关键字设置直接显示图片
%matplotlib inline
weather_data = pd.read_csv('G:\Dropbox\data-analysis\weatherdata.csv', parse_dates=True , index_col='Date')
weather_data
数据是某地2013年整年的天气数据,包含华氏温度,湿度,气压(校准到海平面高度是为了排除高度对气压的影响,单位是英寸汞柱。海平面标准大气压是29.92英寸汞柱,即我们的760毫米汞柱),可见度,风速,云量和天气事件。
weather_data.describe()
对华氏温度我们比较没有直观感觉,加入摄氏温度
weather_data['TemperatureC'] = ( weather_data['TemperatureF'] - 32 ) * 5 / 9
weather_data.describe()
weather_data.TemperatureC.plot(title='Celsius Temperature in 2013', figsize=(20, 6))
可以看到全年最低温能达到-10度以下,而最高温未超过27度,基本也就6至8月在20至25度之间。从我自己的常识来估计,该地区在北半球温带地区。如果气候类型和中国差异不大,相当于纬度在黄河以北,吉林以南。
weather_data['Events'].value_counts(dropna=False).plot(title='Climate Events Distribution 2013', kind='pie', autopct='%1.1f%%', figsize=(8, 8))
weather_data.resample('W').mean().plot(y=['TemperatureF','Humidity'], kind='bar', secondary_y=['Humidity'], mark_right=False, figsize=(20, 8))
weather_data.resample('W').mean().plot(y=['WindSpeedMPH','Humidity'], kind='bar', secondary_y=['Humidity'], mark_right=False, figsize=(20, 8))
有一定比例的雨雪雾气候。有限时间内做图肉眼观察觉得湿度和温度或风速没有太大的相关性,一年大多数时间湿度都不低。就4,5月份有那么几周湿度能在60%以下。这个地区的潮湿和季风应该关系不大,不是靠湖就是靠海。
本来有想法多分析一些数据和尝试一些新的方法,比如X轴时间变量的格式变化。在有限的时间内觉得练习有所收获,还是先发文吧。
疑问
- Jupyter Notobook能直接把运行结果保存或导出为图片吗?pnjoe的完整的weatherdata.csv生成的DataFrame的结果截图是用外部的截图工具做的吗?
- 如果老师发现我的Python语句有什么错误或可以优化的地方,分析的角度和方式有什么可以优化的地方,都欢迎提出。
- 做图要学的地方还不少。坐标轴中Timestamp变量的显示格式在制作图表的工作里也经常调整。现在还没找到一个高效的方法。除了导入或制作索引前即改变其格式,改变格式的函数还未来得及找到并尝试。