Python——基于共享单车使用量数据的可视化分析(1)

目录

🧾 1、数据集(部分数据)

✏️ 2、导入数据集与必要模块

1️⃣ 2.1 导入库以及字体包

2️⃣ 2.2 读取数据集

3️⃣ 2.3 查看数据集基本信息

⌨️ 3、数据预处理

1️⃣ 3.1删除无关字段

2️⃣ 3.2对各字段进行中文标识

3️⃣ 3.3 用条形图展示字段类型个数

📍 df.rename(index=None,columns=None,axis=None,inplace=False)

📍 value_counts(sort,ascending,normalize,bins,dropna)

📍 绘制图形xxx.plot(kind,x,y,ax,subplots,sharex, sharey,layout,figsize,title,xlabel, ylabel,legend,style,logx, logy,xticks, yticks,grid,use_index,colormap,colorbar)

📊 4、使用量影响因素可视化分析 

1️⃣ 4.1 利用直方图、箱线图观察单车使用量的分布

📍 直方图 

📍 箱线图 

 2️⃣ 4.2 利用条形图、饼图对比两年的单车使用量

📍 分组聚合dataframe.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=NoDefault.no_default,observed=False,dropna=True)

📍 条形图

📍 饼图


🧾 1、数据集(部分数据)

  • day数据集

字段名称 含义说明

instant

行数编码
dteday 日期变量
season 季节变量,编码1-4分别表示1-3月、4-6月、6-9月,10-12月
yr 年份变量,编码0代表2011年,1代表2012年
mnth 月份编码,范围为1-12,代表1-12月
holiday 是否为节假日,0代表不是,1代表是
weekday 一周的第几天,范围为0-6
workingday 是否为工作日,0代表不是,1代表是
weathersit 天气类型,1代表晴朗少云,2代表多云雾,3代表小雨/小雪/雷电
temp 以摄氏度表示的标准化温度,值被除以41(最大值)
atemp 以摄氏度表示的标准化感觉温度,值被除以50(最大值)
hum 标准化湿度,值被除以100(最大值)
windspeed 标准化风速,值被除以67(最大值)
casual 未注册用户单车使用量
registered 注册用户单车使用量
cnt 所有用户单车使用量,包括未注册用户和注册用户
  •  tree数据集

✏️ 2、导入数据集与必要模块

1️⃣ 2.1 导入库以及字体包

# 导入pandas模块和numpy模块
import pandas as pd  
import numpy as np  

# 3.# 导入matplotlib.pyolot模块
import matplotlib.pyplot as plt  
from plotnine import *
%matplotlib inline

# 3.设置绘图时的中文字体
from matplotlib.font_manager import FontProperties
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False

# 4.字体包的存放路劲、设置字体的大小为15
myfont = FontProperties(fname = 'C:/XXX/xxx/Desktop/实验五——共享单车可视化/FangSong_GB2312.ttf', size = 15)  

2️⃣ 2.2 读取数据集

# 1.读取数据
data_old = pd.read_csv('C:/XXX/xxx/Desktop/实验五——共享单车可视化/day.csv')

# 2.查看数据的前5行
data_old.head()

3️⃣ 2.3 查看数据集基本信息

# 1.查看数据集基本信息
data_old.info()

  • 从结果中可以看出,数据集中共包含731条数据,没有缺失数据 。

⌨️ 3、数据预处理

1️⃣ 3.1删除无关字段

  • 有些字段与数据分析无关,例如:字段instant表示行数编码,可以直接删除。

  • 有些字段的含义较为接近,保留其一即可,例如:字段atemp和temp都表示温度,留下一个就可以。

# 1.使用drop方法来删除字段
data = data_old.drop(['instant', 'atemp', 'casual', 'registered'], axis=1)  

2️⃣ 3.2对各字段进行中文标识

# 1.字段名称
chs_name = {'dteday': '日期',    # {'新列名':'旧列名'}
            'season': '季节',
            'yr': '年份',
            'mnth': '月份',
            'holiday': '节假日',
            'weekday': '星期',
            'workingday': '工作日',
            'weathersit': '天气类型',
            'temp': '温度',
            'hum': '湿度', 
            'windspeed': '风速', 
            'cnt': '使用量'}

# 2.使用rename方法对列明进行修改,是直接在元数据进行修改
data.rename(columns=chs_name, inplace=True) 

# 3.标识后的结果
data.head()

3️⃣ 3.3 用条形图展示字段类型个数

📍 df.rename(index=None,columns=None,axis=None,inplace=False)
字段 数据类型 含义
index list 或 dict 或 series 用于重命名行索引的标签或映射的字典,如{ 0 : “第一行”}
columns list 或 dict 或 series 用于重命名列名的标签或映射的字典,如{ A : “第一列”}
axis int 或 str 要重命名的轴
inplace bool 是否在原地修改 DataFrame,如果为True,则直接在原 DataFrame 上进行修改,不返回新的 DataFrame,如果为False(默认值),则返回一个新的 DataFrame,原 DataFrame 保持不变
📍 value_counts(sort,ascending,normalize,bins,dropna)
字段 数据类型 含义
sort bool

默认为True,如果为True,则对结果进行降序排序(从最常见的值到最不常见的值),如果为False,则不会进行排序

ascending bool

默认值为 False,如果为False,则结果按降序排序(最常见的值在最前面),如果为True,则结果按升序排序(最不常见的值在最前面)

normalize bool 默认值为False如果为True,则返回每个值出现的频率(即每个值出现的次数除以总数),如果为False,则返回每个值出现的次数
bins int 或 array 可以用来对数据进行分箱,并将结果作为类别计数返回,如果指定了bins,则normalize 必须为False
dropna bool 默认值为True如果为True,则不在结果中包含缺失值(NaN),如果为False,则会在结果中包含缺失值,并计算它们的出现次数
  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cherry晴

创作不易,多多包涵~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值