摩拜单车项目-数据清洗

import pandas as pd
import seaborn as sns
import geohash
import matplotlib.pyplot as plt
from math import radians,cos,sin,asin,sqrt
%matplotlib inline
train=pd.read_csv("D:/lulu working file/train.csv",engine="python",sep=",",parse_dates=["starttime"])
test=pd.read_csv("D:/lulu working file/test.csv",engine="python",sep=",",parse_dates=["starttime"])
train.head()

def _processData(df):
#Time
df[‘weekday‘]=df[‘starttime‘].apply(lambda s:s.weekday())#Monday is 0 and Sunday is 6
df[‘hour‘]=df[‘starttime‘].apply(lambda s:s.hour)
df[‘day‘]=df[‘starttime‘].apply(lambda s:str(s)[:10])
print("Time process successfully!")

#Geohash
df[‘start_lat_lng‘]=df[‘geohashed_start_loc‘].apply(lambda s:geohash.decode(s))
df[‘end_lat_lng‘]=df[‘geohashed_end_loc‘].apply(lambda s:geohash.decode(s))
df[‘start_neighbors‘]=df[‘geohashed_start_loc‘].apply(lambda s:geohash.neighbors(s))

df[‘geohashed_start_loc_6‘]=df[‘geohashed_start_loc‘].apply(lambda s:s[:6])
df[‘geohashed_end_loc_6‘]=df[‘geohashed_end_loc‘].apply(lambda s:s[:6])
df[‘start_neighbors_6‘]=df[‘geohashed_start_loc‘].apply(lambda s:geohash.neighbors(s))
print("Geohash process successfully!")

#判断目的地是否在neighbors
def inGeohash(start_geohash,end_geohash,names):
names.append(start_geohash)
if end_geohash in names:
return 1
else:
return 0
df[‘inside‘]=df.apply(lambda s:inGeohash(s[‘geohashed_start_loc‘],s[‘geohash_end_loc‘],s[‘start_neighbors‘]),axis=1)
df[‘inside_6‘]=df.apply(lambda s:inGeohash(s[‘geohashed_start_loc_6‘],s[‘geohash_end_loc_6‘],s[‘start_neighbors_6‘]),axis=1)
print("Geohash inside process successfully!")

#Distance start->end
def haversine(lon1,lat1,lon2,lat2):
‘‘‘
Calculate the great circle distance between two points
on the earth(specified in decimal degrees)

‘‘‘
lon1,lat1,lon2,lat2=map(radians,[lon1,lat1,lon2,lat2])
#haversine 公式
dlon=lon2-lon1
dlat=lat2-lat1
a=sin(dlat2/2)**2+cos(lat1)*cos(lat2)*sin(dlon/2)**2
c=2*asin(sqrt(a))
r=6371
return c*r*1000

df[‘start_end_distance‘]=df.apply(lambda s:haversine(s[‘start_lat_lng‘][1],s[‘start_lat_lng‘][0],s[‘end_lat_lng‘][1],s[‘end_lat_lng‘][0]),axis=1)
print("Distance process successfully!")
return df

train=_processData(train)

def _timeAnalysis(df):
#days
print("数据集包含的天数如下:")
print(df[‘day‘].unique())
print("*"*60)
#用户出行小时高峰期
g1=df.groupby("hour")
print(g1[‘orderid‘].count.sort_values(ascending=False))
print("*"*60)
#周一至周日用车分析
g1=df.groupby("weekday")
print(pd.DataFrame(g1[‘orderid‘].count()))
print("*"*60)

#周一至周日不同时间的用车
df.loc[(df[‘weekday‘]==5)|(df[‘weekday‘]==6),"isWeekend"]=1
df.loc[~((df[‘weekday‘]==5)|(df[‘weekday‘]==6)),"isWeekend"]=0
g1=df.groupby(["isWeekend","hour"])

#计算工作日与周末的天数
g2=df.groupby(["day","weekday"])
w=0
c=0
for i,j in list(g2.groups.keys()):
if j>=5:
w+=1
else:
c+=1

temp_df=pd.DataFrame(g1[‘orderid‘].count()).reset_index()
temp_df.loc[temp_df[‘isweekend‘]==0.0,‘orderid‘]=temp_df[‘orderid‘]/c

_timeAnalysis(train)
temp_df.loc[temp_df[‘isweekend‘]==1.0,‘orderid‘]=temp_df[‘orderid‘]/c

temp_df.loc[temp_df[‘isWeekend‘] == 1.0,‘orderid‘] = temp_df[‘orderid‘] / w
print(temp_df.sort_values(["isWeekend","orderid"],ascending=False))
sns.barplot(x=‘hour‘,y=‘orderid‘,hue=‘isWeekend‘,data=temp_df)

敲了一遍代码发现很多细节问题,geohash 的包没有neighbors,替换了Lib里的问py文件就好了。路径尽量不要有中文,要浅,复制要改成反分隔符。

原文地址:https://www.cnblogs.com/ceeyo/p/11698422.html

时间: 2024-10-08 07:50:02

摩拜单车项目-数据清洗的相关文章

摩拜单车深度产品体验报告

上周朋友写了一篇共享汽车的体验文章,而我最近则一直在使用摩拜单车,并且近几个月以来,"共享单车"这个名堂貌似也越来越响亮了,虽然我一直觉得这个所谓的共享的本质不过是B2C的租车模式. 基于以上的种种因素组合,我决定写一篇关于摩拜单车的体验报告,在文章的最开始我会先说明写本文的目的和本文的一些局限性. 写作目的: 摩拜单车兴起于今年8月之后,增长的速度非常快,产品迭代背后的逻辑肯定有很多值得我们学习的东西,加上摩拜单车成功解决了我上班路上的"最后一公里问题".所以就打

我为什么不看好王兴收购摩拜单车

这几天真是热闹,先是阿里巴巴95亿美金收购饿了么,接着又是美团点评收购摩拜单车.关于美团点评收购摩拜单车,网上的分析已经很多,我说说我的看法.一.王兴买摩拜捡了个便宜?并没有!有人说,王兴当前买下摩拜是一笔很划算的买卖.理由嘛,1.共享单车已经是交通出行领域的最大流量入口.摩拜单车在去年4月份的单日订单已达2000万单,超过了滴滴的单日订单量.2.共享单车的用户数据是更有价值的资产.成为出行领域事实上的流量大户外,共享单车的用户数据则是更有价值的资产.有了这些数据,企业就可以对用户进行"精准画像

摩拜单车模式优于OFO双向通信才能被认可

马化腾 :摩拜单车模式优于OFO双向通信才能被认可 2017-06-20 00:12 最近共享单车里最头条的新闻是 悟空单车宣布退出竞争,并全部退还投资款和押金以及余额.运营才5个月,成为第一家倒下的互联网单车公司,对很多人来说可能还没来得及体验,"大圣"却不在了.悟空单车采用的是机械锁,对于这种方式的单车马化腾在朋友圈怒怂ofo投资人! 从成立以来ofo和摩拜量大巨头口水战和公关战不断,不久前双方不断融资战火升级.ofo投资人朱啸虎在朋友圈一份艾瑞咨询的报告, ofo月度活跃用户和增

从最近北京摩拜科技被列入“经营异常名录”谈起

2016年下半年,共享单车在迅速席卷一二线城市,并向三四线城市快速扩张的同时,也成功引发极高关注度--被放在显微镜下仔细观察.近日,国家企业信用信息公示系统中显示,一个法定代表人为胡玮炜,名为北京摩拜科技有限公司被列入"经营异常名录",原因是"通过登记的住所或者经营场所无法取得联系".虽然摩拜对此予以澄清因为办公室地址变迁,相关手续和信息还未更新引起的误会,但这还是引发了业界一连串的思考-- 起底摩拜:2016年注册这么多公司干嘛? 在国家企业信用信息公示系统上,以

摩拜获巨额融资,为何还被曝拖欠底层员工薪水?

当前的中国互联网圈子一直不缺劲爆话题,共享单车尤是风口浪尖.如果关注或是搜索共享单车相关关键词,满屏的利好消息顿时便会充斥整个屏幕,让人一眼看去其乐融融和谐无边的景象几乎直截了当的告诉读者:共享单车是太阳底下最灿烂的事业,比如动辄融资数亿美金.或是市场份额已经轻易碾压对手-- 然而抛开公关宣传和资本手段之后,大众才会发现所有关于浮面的荣光和鲜花底下,几乎都有不可遮掩的暗面,其中一些近乎让人不齿的举动更是让人眼界全开. 摩拜融资6亿,但被曝已拖欠员工4月工资 摩拜单车是共享单车领域的当家花旦,依靠

摩拜进入英国规模化运营 ofo小黄车仅投放20辆

6月13日,摩拜智能共享单车进军英国市场,选取英国曼彻斯特作为摩拜第100个运营城市,而且同步进入毗邻曼市的索尔福德.曼彻斯特也是摩拜进驻的首个非亚洲地区的运营城市,运营前期先会投放1000辆小橙车,之后将不断增加投放数量,从而满足英国市民的出行需求. 行业内另一家单车企业ofo小黄车早就宣称进入了英国市场,不过对比摩拜单车大手笔的投放数量,ofo仅20辆的投放数量成为业内人士笑谈.众所周知,机械锁设计的ofo小黄车不仅没有定位功能,而且机械锁容易被破解和盗骑.在国内城市,ofo投放了上百万辆单

摩拜国际化架构如何演进

共享单车高速增长这一年,伴随着业务从单一形态到综合出行服务,市场从国内到海外,摩拜基础架构经历了剧烈的演变.从早期的 Monolith.单机房,到后来的 Microservices.容器化.单元化,摩拜的系统已部署在全球十多个机房.自建的 DevOps 工具链,支撑着数百人的技术团队高速运转.演讲大纲 微服务改造 容器化.单元化部署 核心系统重构及性能优化 海外独立部署 DevOps 支撑工具链 本视频来自摩拜首席架构师范同祥在 ArchSummit 的分享 .公众号后台回复关键词「摩拜」下载完

随手翻的一道摩拜校招题

好久没写点东西了,一方面在忙于写点玩具,而另一方面又是忙于学车. 昨天随手就看到了摩拜单车的一道校招题,是这样的: 于是我就用了常规solution,如下: function times(str,time){ while(time>1){ str+='abc'; time--; } return str; } console.log(times('abc',3)); // => 'abcabcabc' 但听说用一行代码解决可以加分哟,于是我屁颠屁颠就去写了,代码如下: function tim

摩拜大裁员:持续亏损难翻身,已被“爸爸”抛弃?

即使找到 "好爸爸",也不意味着能够毫发无伤地活下来. 上个周末,摩拜的"精神旗帜".创始人胡玮炜发内部信正式宣布卸任CEO,这距离摩拜被美团收购仅过去了八个月.紧接着就有传闻,摩拜将优化人员,进一步降低成本. 手起刀落.周一,多名摩拜市场.安全和城市端的员工表示,刚上班就被告知裁员,从总部到城市,涉及到各个部门,部分后端部门近乎"团灭".对此,摩拜回应称属于正常的业务调整. 美团长期发力本地生活服务,目前已经成为该领域的领跑者.这个过程伴随着四