大纲一、研究目的
二、分析思路
1、加载数据
2、理解数据
3、数据清洗
4、相关性分析
5、数据可视化
一、研究目的
分析不同因素对租车人数的影响情况,根据分析的结果,给运营提供数据支撑。
二、分析思路
1、加载数据
①加载数据处理所需要的库
#加载数据处理所需要的库
import numpy as np
import pandas as pd
import os
②获取数据、导入数据知识点详解:如何利用python查看CSV文件?
df=pd.read_csv('ecsv文件名.csv')
df
#获取数据、导入数据
#将当前工作目录切换到制定路径(C:\Users\14861\Desktop\项目经验\共享单车项目-数据\数据分析)
df=pd.read_csv('train_bike.csv')
②数据概览、读取数据文件
#数据概览
df
2、理解数据
3、数据清洗
1)列名重命名
因为原数据字段名是英文,为了便于理解,将字段名修改为中文名。
colNameDict = {
'season':'季节',
'holiday':'节假日',
'workingday':'工作日',
'weather':'天气',
'temp':'摄氏温度',
'atemp':'体感温度',
'humidity':'湿度',
'windspeed':'风速',
'casual':'非注册用户个数',
'registered':'注册用户个数',
'count':'租车总人数'
}
df.rename(columns = colNameDict,inplace=True)
df.head()
为什么没有对datatime列重命名?
原因:是因为在后续的操作中会将时间分割。等分割为不同列时,再进行更有效的命名。
2)缺失值处理
#查看数据总数/数据类型/了解数据缺失情况
df.info()
从上图可以得知:数据一共10886行,没有缺失值,因此不需要缺失值处理
4)一致化处理
①日期处理:将日期处理成年、月、星期、时刻等
获取日期
#获取日期
def getday(x):
return x.split()[0]
#使用datatime的apply函数获取日期
df['日期'] = df.datetime.apply(getday)
df['日期'].head()
获取月份
def get_month(x):
dateStr = x.split()[0]
dateDT = datetime.datetime.strptime(dateStr,'%Y-%m-%d')
month = dateDT.month
return month
#获取月份数
df['月份'] = df.datetime.apply(get_month)
df['月份'].head()
获取星期
#定义获取星期数的函数
def get_weekday(x):
dateStr = x.split()[0]
dateDT = datetime.datetime.strptime(dateStr,'%Y-%m-%d')
week_day = dateDT.weekday()
return week_day
#获取星期数
df['星期'] =df.datetime.apply(get_weekday)
df['星期'].head()
获取时刻
#获取时刻
def get_hour(x):
hour = x.split()[1].split(':')[0]
return hour
#使用datatime的apply函数获取小时数
df['时刻']= df.datetime.apply(get_hour)
df['时刻'].head()
4、相关性分析
# 使用pandas的corr()函数计算各个列的相关性
correlation = df[['季节','节假日','工作日','天气','摄氏温度','体感温度','湿度','风速',
'时刻','星期','月份','非注册用户个数','注册用户个数','租车总人数']].corr()
correlation
5、相关性可视化
#导入可视化包
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid',{'font.sans-serif':['simhei','Arial']})
#定义一个图形
fig = plt.figure(figsize = (12,12))
sns.heatmap(correlation,vmax = 1,square = True,annot=True)
当相关性大于0.3时说明二者存在相关关系,因此结合上图可得:
①温度与租车人数存在较强的正相关,不严谨的说即温度越高租车人数越多;
温度与注册用户存在较强的正相关,温度较高的时候注册用户人数增加;
从而可得:随着温度越高,注册用户增加,从而增加了租车总人数。
②湿度与租车人数存在较强的负相关,湿度越大租车人数越少(雨雪天气使用人数减弱);
③非注册用户与租车总人数之间存在正相关,但是注册用户比非注册用户与租车总人数相关性高;说明注册用户更偏向于选择使用单车;(下一步应该尽量将非注册用户转化为注册用户)
④工作日与非注册用户个数存在负相关,可以理解非注册用户偏向于非工作日出行。