假设我有一个这种类型的数据帧(最简单的例子):
myDf = pd.DataFrame({'user': ['A'','B', 'C', 'D', 'E']*2,'date': ['2017-05-25']*5+['2017-05-26']*5,'nVisits':[10,2,3,0,0,6,0,4,8,1]})
在表中,如下所示:
date nVisits user
5/25/2017 10 A
5/25/2017 2 B
5/25/2017 3 C
5/25/2017 0 D
5/25/2017 0 E
5/26/2017 6 A
5/26/2017 0 B
5/26/2017 4 C
5/26/2017 8 D
5/26/2017 1 E
(1)我想将我的用户每天分类为4个存储桶:0次访问、1次访问、2-4次访问、5次以上访问,因此我想创建如下所示的数据帧摘要:
date group nVisits nObs
5/25/2017 zero 0 2
5/25/2017 one 0 0
5/25/2017 twoToFour 2 2
5/25/2017 fivePlus 10 1
5/26/2017 zero 0 1
5/26/2017 one 1 1
5/26/2017 twoToFour 4 1
5/26/2017 fivePlus 16 2
这个数据帧基本上是每个bucket的观察次数以及每个bucket的访问次数,其中哪个用户属于哪个bucket,每天更新一次。你知道吗
(2)我想对客户的所有出生和死亡进行分类,其中出生被分类为从0次就诊到>;1次就诊的客户,死亡被分类为从>;1次就诊到0次就诊的客户。你知道吗
在此特定示例中,新的数据帧如下所示:
date event_type user nVisitsAtBirthDeath
5/26/2017 death B 2
5/26/2017 birth D 8
5/26/2017 birth E 1
这个数据帧基本上是从今天到前一天的比较,从用户从0访问到多于或等于1访问,以及从多于或等于1访问到0访问。你知道吗
你能帮我开始学习如何高效高效地完成这项工作吗。我原来的数据帧比较大,所以python中的for循环运行得太慢。你知道吗
我会使用pd.cut()方法:
一种方法是使用np.哪里()
myDf[“组”]=np.哪里(myDf.nVisits公司>;5,'五加',np.哪里(myDf.nVisits公司==0,'零', np.哪里(myDf.nVisits公司==1,'一','四分之二'))
解决方案1:
输出:
解决方案2:
输出:
相关问题 更多 >
编程相关推荐