书接上回~
Ex3:统计商品的审核情况
在data/supplement/ex3中存放了两个有关商品审核的信息表,“商品信息.csv”中记录了每个商品的ID号,唯一的识别码以及商品所属的类别,“申请与审核记录.csv”中记录了每个商品的审核信息。已知商品的审核流程如下:由申请人发起商品审核的申请,然后由审核人审核,审核的结果包括通过与不通过两种情况,若商品不通过审核则可以由另一位申请人再次发起申请,直到商品的审核通过。
df_info = pd.read_csv('data/supplement/ex3/商品信息.csv')
df_info.head()
Out[9]:
ID号 识别码 类别
0 ID 000001 CRtXJUK T1
1 ID 000002 RGSxifC Q1
2 ID 000003 AboduTp S1
3 ID 000004 zlpUeMl S2
4 ID 000005 IVQqhIK S3
df_record = pd.read_csv('data/supplement/ex3/申请与审核记录.csv')
df_record.head()
Out[11]:
ID号 申请人 申请时间 审核人 审核时间 结果
0 ID 000001 \#+3((52\{ 2020-04-19 ~1=6\*183| 2020-05-03 未通过
1 ID 000001 8@75[1|2\* 2020-05-10 15![3\({59 2020-07-17 未通过
2 ID 000001 }!7)(#^0*7 2020-07-28 3`}04}%@75 2020-08-23 通过
3 ID 000002 |*{20#9|}5 2020-01-05 ={`8]03*4+ 2020-03-09 未通过
4 ID 000002 4~6%)455`[ 2020-03-14 =$-36[)|8] 2020-04-21 未通过
-
有多少商品最终通过审核?
df_info = pd.read_csv('d:\pdd\data_set\data\supplement\ex3/商品信息.csv')
df_record = pd.read_csv('d:\pdd\data_set\data\supplement\ex3\申请与审核记录.csv')
df_record.loc[df_record.结果=='通过'].shape[0]
#query或者loc都可以
10848
-
各类别商品的通过率分别为多少?
思路类似求数据集中各列的非空值占比,求得一个布尔序列后计算均值就是通过率
df_record_pass = df_record.loc[df_record.结果=='通过',['ID号','结果']]
df_info_pass = df_info.merge(df_record_pass,on = 'ID号',how = 'left')
#商品表以ID号主键左连接申请审核记录表
df_info_pass.groupby('类别')['结果'].agg(lambda x:x.notna().mean())
#结果列非空,即通过为1,不通过为空,即0,求均值即通过率
类别
Q1 0.3