在理解意思的情况下,下面这个代码更简洁一些

import pandas as pd

import numpy as np

#导入数据生成数据框data1

#可能由于一些原因导致审核通过日期等变量导入到python中之后变成了字符串变量

data1=pd.read_csv("D:\\A2021_02_13.csv")


#先把审核通过的数据挑出来生成新数据框data2

#这个数据是从mysql数据库中导出的,在mysql数据库中如果审核没有通过,则审核通过日期用-1表示

#这种为-1的数据不是我们需要的,

#所以我们把非-1数据挑选出来。


data2=data1[data1["审核通过日期"]!="-1"]

#需要说明的是学生在mysql数据库中提取这个数据的时候帮我进行了筛选,所以我们这个数据中不存在-1的情况

#我之所以还是把这个命令放到这里,是希望大家在做数据清洗的时候需要注意到这样的业务问题。



#将统计日期和提交资料日期字符串变成日期时间型

data2["统计日期"]=data2["统计日期"].map(lambda x :pd.Timestamp(x))

data2["提交资料日期"]=data2["提交资料日期"].map(lambda x :pd.Timestamp(x))

data2["审核通过日期"]=data2["审核通过日期"].map(lambda x :pd.Timestamp(x))


#计算重要变量

def f1(x):

aa=x["统计日期"]-x["审核通过日期"]

bb=aa.days

return bb

data2["距离审核通过第多少天"]=data2.apply(f1,axis=1)


#根据审核通过日期对数据进行筛选

data3=data2[(data2["审核通过日期"]>=pd.Timestamp("2021-01-01")) & (data2["审核通过日期"]<=pd.Timestamp("2021-01-24"))]


#计算每个人在每个统计日期的总销量

#团长ID为每一个人的唯一标识ID

#每一个人是有很多行记录的

#在一个审核通过日期,可能有很多人通过审核

pivot_table1=data3.pivot_table(values=["销量"],

index=["审核通过日期","团长ID","距离审核通过第多少天"],

aggfunc={ "销量":np.sum})


#更改变量名字,为了以后的调用方便

pivot_table1.columns=["销量"]

#将索引变成普通字段

pivot_table1.reset_index(inplace=True)

#生成是否消费字段

pivot_table1["是否消费"]=pivot_table1["销量"].map(lambda x:1 if x>0 else 0)


#只保留"距离审核通过第多少天"小于等于7的情况

pivot_table1.drop(index=pivot_table1.index[pivot_table1["距离审核通过第多少天"]>7],axis=0,inplace=True)


pivot_table1.set_index(["审核通过日期","团长ID","距离审核通过第多少天"],drop=True,inplace=True)


#将序列由长变宽

ddd=pivot_table1["是否消费"].unstack(level=-1)



#计算是否一日留存

ddd["是否一日留存"]=ddd.apply(lambda x:1 if x[0]==1 else 0,axis=1)

#计算是否次日留存

ddd["是否次日留存"]=ddd.apply(lambda x:1 if x[0]==1 and x[1]==1 else 0,axis=1)


#计算是否次日留存

ddd["是否7日留存"]=ddd.iloc[:,:7].sum(axis=1)==7

ddd["temp"]=1


result=ddd.loc[:,["temp","是否次日留存","是否7日留存"]].sum(axis=0)


print("次日留存率为",result["是否次日留存"]/result["temp"])

print("7日留存率为",result["是否7日留存"]/result["temp"])


2 0 0

QQ截图20210210134941.png

0 0 0

lzp1127774265

2021-02-10

SQL语句运行报错

QQ截图20210210134941.png

0 0 0

lzp1127774265

2021-02-10

SQL语句运行报错

image.png

0 0 0

lzp1127774265

2021-02-10

SQL语句运行报错

image.png

0 0 0

CDA100823

2021-02-10

plot_roc_curve导入错误