我是靠谱客的博主 平常豆芽,这篇文章主要介绍【数据分析】共享单车数据的处理,现在分享给大家,希望可以做个参考。

日常练习,题目如下:

1.读取train数据集

2.查看前5条数据2.查看数据信息3.查看数据分布"
3."切分 训练集和 测试集,并且增加一列 trainortest ,来区分每条数据 是 属于训练集 还是测试集合,然后合并"
4.切分datetime列 2011-01-01 00:00:00,新增 日期列  date列 例如2012-06-09
5.新增 小时 列,例如datetime列 ""2011-01-01 00:14:00""中的14"
6.月份 属性列 进行频数统计
7."统计 不同小时,用车的总数量 1.根据小时 进行分组 
8.使用分组对象的 聚合函数 进行 组内求和,得到的是 数据帧(组内 所有 属性求和)
9.取出 求和 数据帧中的 count求和列,作为一个系列series
10.绘制以上系列对象的折线图
11.根据上图 将 hour 可以分为 几个 时间段 hour_section列
12.先获取 部分属性 ["temp","atemp","casual","registered","humidity","windspeed","count"],构造一个数据帧对象df2
13.使用df2对象的自带方法生成皮尔逊相关系数矩阵df3,对df3绘制热力图并且展示

导包:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn
import datetime
from sklearn.model_selection import train_test_split

题目实现:

# (8) 读取train数据集
df = pd.read_csv('train.csv')
# (9) "数据检视
# #1.查看前5条数据2.查看数据信息3.查看数据分布"
print(df.head())
df.info()
print(df.describe())
# (10) "切分 训练集和 测试集,并且增加一列 trainortest ,
# 来区分每条数据 是 属于训练集 还是测试集合,然后合并"
data_tr, data_te = train_test_split(df, test_size=0.25)
data_tr['trainortest'] = '训练集'
data_te['trainortest'] = '测试集'
df = pd.concat([data_tr, data_te])
# (11) 切分datetime列 2011-01-01 00:00:00,新增 日期列
date列 例如2012-06-09
import datetime
def month_section(x):
daboj = datetime.datetime.fromisoformat(x)
return daboj.month
def day_section(x):
daboj = datetime.datetime.fromisoformat(x)
return daboj.day
def hour_section(x):
daboj = datetime.datetime.fromisoformat(x)
return daboj.hour
def date_set(x):
daboj = datetime.datetime.fromisoformat(x)
year = daboj.year
month = daboj.month
day = daboj.day
return f'{year}-{month}-{day}'
df['date'] = df['datetime'].apply(date_set)
# (12) 新增 小时 列,例如datetime列 ""2011-01-01 00:14:00""中的14"
df['hour_section'] = df['datetime'].apply(hour_section)
# (13) 月份 属性列 进行频数统计
df['month_section'] = df['datetime'].apply(month_section)
print(df['month_section'].value_counts())
# (14) "统计 不同小时,用车的总数量 1.根据小时 进行分组
data_hc = df.groupby(by=['hour_section'])
# (15) 2.使用分组对象的 聚合函数 进行 组内求和,得到的是 数据帧(组内 所有 属性求和)
data_hc_sum = data_hc.agg(numpy.sum)
# (16) 3.取出 求和 数据帧中的 count求和列,作为一个系列series
data_hc_sum_reset_index = data_hc_sum.reset_index()
# print(data_hc_sum_reset_index)
print(df['count'])
# (17) 4.绘制以上系列对象的折线图
seaborn.lineplot(data=data_hc_sum_reset_index,x='hour_section',y='count')
plt.show()
# (18) 根据上图 将 hour 可以分为 几个 时间段 hour_section列
def hour_set(x):
if 6 <= x <= 9:
return '早高峰'
elif 11 <= x <= 13:
return '午高峰'
elif 17 <= x <= 21:
return '晚高峰'
else:
return '低谷'
df['hour_section'] = df['hour_section'].apply(hour_set)
# (19) 先获取 部分属性 ["temp","atemp","casual","registered","humidity","windspeed","count"],
# 构造一个数据帧对象df2
get_list = ["temp", "atemp", "casual", "registered", "humidity", "windspeed", "count"]
df2 = df.loc[:, get_list]
# (20) 使用df2对象的自带方法生成皮尔逊相关系数矩阵df3,对df3绘制热力图并且展示
df3 = df2.corr()
seaborn.heatmap(data=df3,annot=True)
plt.show()


 

最后

以上就是平常豆芽最近收集整理的关于【数据分析】共享单车数据的处理的全部内容,更多相关【数据分析】共享单车数据内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部