日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

乐飞天下python笔试题_滴滴2020年春招笔试题分析(Python)

發(fā)布時(shí)間:2025/3/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 乐飞天下python笔试题_滴滴2020年春招笔试题分析(Python) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)背景來自:優(yōu)梨:滴滴2020年春招Sql筆試題分析?zhuanlan.zhihu.com

這里就不再重復(fù)了,主要描述如何使用python數(shù)據(jù)清洗

問題:

1.訂單的平均應(yīng)答率是多少?完單率是多少?

2.每個(gè)訂單的平均應(yīng)答時(shí)間是多少?

3.從這一周的時(shí)間來看,呼叫次數(shù)最多的時(shí)間是幾點(diǎn)(當(dāng)?shù)貢r(shí)間),最少的隨時(shí)間是幾點(diǎn)(當(dāng)?shù)貢r(shí)間)

4.客戶留存的情況:呼叫訂單第二天繼續(xù)呼叫的比例是多少?

數(shù)據(jù)清洗

1.首先導(dǎo)入文件

import pandas as pd

x1=pd.read_csv('C:/Users/LENOVO/Desktop/didi.csv')

2.為方便理解查詢將列名改成中文

smallDic={'order_id':'訂單號(hào)','passenger_id':'乘客號(hào)','call_time':'呼叫時(shí)間',

'grab_time':'應(yīng)答時(shí)間','cancel_time':'取消時(shí)間','finish_time':'完成時(shí)間'}

x1.rename(columns=smallDic,inplace=True)

x1.head()

3.缺失數(shù)據(jù)處理

x1.shape

x2=x1.dropna(subset=['訂單號(hào)','乘客號(hào)'],how='any')

x2.shape并沒有缺失的數(shù)據(jù)

4.統(tǒng)一處理為巴西時(shí)間

import datetime

def time_add(x):

list=[]

for i in x:

sdate = datetime.datetime.strptime(i,'%Y/%m/%d %H:%M')

delta11 = datetime.timedelta(hours=11) #巴西時(shí)間比國(guó)內(nèi)慢11小時(shí)

edate = sdate - delta11

list.append(edate)

pd1=pd.Series(list)

return pd1

t=x2.loc[:,'應(yīng)答時(shí)間']

t1=x2.loc[:,'呼叫時(shí)間']

t2=x2.loc[:,'取消時(shí)間']

t3=x2.loc[:,'完成時(shí)間']

x2.loc[:,'應(yīng)答時(shí)間']=time_add(t)

x2.loc[:,'呼叫時(shí)間']=time_add(t1)

x2.loc[:,'取消時(shí)間']=time_add(t2)

x2.loc[:,'完成時(shí)間']=time_add(t3)

x2.head()

5.對(duì)呼叫時(shí)間進(jìn)行處理,分為呼叫日期和呼叫時(shí)刻

x2.loc[:,'呼叫時(shí)間']=x2.loc[:,'呼叫時(shí)間'].astype('str')

def time_spilt(x):

list=[]

for i in x:

date=i.split(" ")[0]

list.append(date)

pd1=pd.Series(list)

return pd1

date1=x2.loc[:,'呼叫時(shí)間']

x2['呼叫日期']=time_spilt(date1)

def hour_spilt(x):

list=[]

for i in x:

date=i.split(" ")[1]

hour=date.split(":")[0]

list.append(hour)

pd1=pd.Series(list)

return pd1

date1=x2.loc[:,'呼叫時(shí)間']

x2['呼叫時(shí)刻']=hour_spilt(date1)

x2.head()

6.呼叫日期中可能還會(huì)有空值,因此再次處理一下

x2.loc[:,'呼叫時(shí)間']=pd.to_datetime(x2.loc[:,'呼叫時(shí)間'],

format='%Y/%m/%d %H:%M',

errors='coerce' #表示不符合格式要求時(shí)轉(zhuǎn)化成空值

)

clearData=x2.dropna(subset=['呼叫時(shí)間'],how='any')

#行數(shù)就代表總的呼叫訂單數(shù)

call_O=clearData.shape[0]

7.對(duì)時(shí)間進(jìn)行排序

#對(duì)時(shí)間進(jìn)行排序

clearData=clearData.sort_values(by=['呼叫時(shí)間'],ascending=True)

clearData=clearData.reset_index(drop=True) #重新修改索引值

clearData.head()

構(gòu)建模型

#構(gòu)建模型 應(yīng)答率=應(yīng)答訂單/呼叫訂單 多條件篩選

judge1=(clearData.loc[:,'應(yīng)答時(shí)間']>'2018-3-5') & (clearData.loc[:,'應(yīng)答時(shí)間']

clearData1=clearData.loc[judge1,:]

grab_O=clearData1.shape[0]

grab_rate=grab_O/call_O

grab_rate應(yīng)答率72.39%

#完成率也是一樣的算法 完成訂單/呼叫訂單

judge2=(clearData.loc[:,'完成時(shí)間']>'2018-3-5') & (clearData.loc[:,'完成時(shí)間']

clearData2=clearData.loc[judge2,:]

finish_O=clearData2.shape[0]

finish_R=finish_O/call_O

finish_R完成率47.14%

#最多呼叫次數(shù)計(jì)算

call_Num=clearData.groupby('呼叫時(shí)刻').agg({'訂單號(hào)':'count'})

max_time=call_Num.max()

p,d=call_Num.stack().idxmax()

print(p,max_time)表示最多的是18點(diǎn),40筆

min_time=call_Num.min()

p1,d1=call_Num.stack().idxmin()

print(p1,min_time)最少的為2點(diǎn),只有1筆

將結(jié)果在圖上繪制出來峰值為18點(diǎn)此后開始大幅下降,而凌晨2-4點(diǎn)這段時(shí)間呼叫次數(shù)很低

from datetime import timedelta

data=clearData.loc[:,['呼叫日期','乘客號(hào)']]

data.loc[:,'呼叫日期']=pd.to_datetime(data.loc[:,'呼叫日期'],format='%Y-%m-%d')

data.dtypes為了后面更好的計(jì)算,需要轉(zhuǎn)換日期格式

include_time=pd.Series(data.呼叫日期.unique()).sort_values()[:-1]

list=[]

for i in include_time:

first_user=set(data[data.呼叫日期==i].乘客號(hào).unique())

add_day=datetime.timedelta(days=1)

s=i+add_day

second_user=set(data[data.呼叫日期==s].乘客號(hào).unique())

a=0

for user in first_user:

for user1 in second_user:

if user==user1:

a=a+1

continue

rencent_rate=a/len(first_user)

print(i,rencent_rate)

python基礎(chǔ)數(shù)據(jù)分析學(xué)習(xí):優(yōu)梨:Python數(shù)據(jù)分析工具入門:Numpy/Pandas?zhuanlan.zhihu.com

總結(jié)

以上是生活随笔為你收集整理的乐飞天下python笔试题_滴滴2020年春招笔试题分析(Python)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。