python关联分析如何可视化_Python|共享单车数据可视化分析

该博客详细介绍了通过Python进行数据分析的过程,包括加载数据、理解数据、数据清洗、相关性分析和可视化。作者发现温度、湿度、非注册用户与租车人数存在显著相关性,提出注册用户转化策略和非工作日出行趋势。
摘要由CSDN通过智能技术生成

大纲一、研究目的

二、分析思路

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时说明二者存在相关关系,因此结合上图可得:

①温度与租车人数存在较强的正相关,不严谨的说即温度越高租车人数越多;

温度与注册用户存在较强的正相关,温度较高的时候注册用户人数增加;

从而可得:随着温度越高,注册用户增加,从而增加了租车总人数。

②湿度与租车人数存在较强的负相关,湿度越大租车人数越少(雨雪天气使用人数减弱);

③非注册用户与租车总人数之间存在正相关,但是注册用户比非注册用户与租车总人数相关性高;说明注册用户更偏向于选择使用单车;(下一步应该尽量将非注册用户转化为注册用户)

④工作日与非注册用户个数存在负相关,可以理解非注册用户偏向于非工作日出行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值