草庐IT

分组传送网

全部标签

python - 按两列分组并计算 Pandas 中每个组合的出现次数

我有以下数据框:data=pd.DataFrame({'user_id':['a1','a1','a1','a2','a2','a2','a3','a3','a3'],'product_id':['p1','p1','p2','p1','p1','p1','p2','p2','p3']})product_iduser_idp1a1p1a1p2a1p1a2p1a2p1a2p2a3p2a3p3a3在实际情况下可能还有其他一些列,但我需要做的是按数据框按product_id和user_id列分组并计算每个组合的数量并将其添加为新数据框中的新列输出应该是这样的:user_idproduct_i

python - 对按 ID 列分组的巨大 2D NumPy 数组求和的最有效方法?

我有一个海量数据数组(50万行),如下所示:idvaluescore12020110301150212423825693618...如您所见,左侧有一个非唯一ID列,第3列中有各种分数。我希望快速将所有分数相加,并按ID分组。在SQL中,这看起来像SELECTsum(score)FROMtableGROUPBYid我尝试使用NumPy遍历每个ID,按每个ID截断表格,然后对该表格的分数求和。table_trunc=table[(table==id).any(1)]score=sum(table_trunc[:,2])不幸的是,我发现第一个命令很慢。有没有更有效的方法来做到这一点?

python - 如何在 pandas 0.20.1+ 中重命名多级分组中的所有列

随着Pandas0.20.1的发布,对groupby.agg()的功能进行了新的弃用,其中包含用于重命名的字典。Deprecationdocumentation我正在尝试找到更新我的代码以解决这个问题的最佳方法,但是我正在努力解决我目前如何使用此重命名功能。当我进行聚合时,我经常为每个源列设置多个函数,并且我一直在使用此重命名功能来获得具有这些新列名称的单级索引。例子:df=pd.DataFrame({'A':[1,1,1,2,2],'B':range(5),'C':range(5)})In[30]:dfOut[30]:ABC01001111212232334244frame=df.g

python - 如何将多个模块分组到一个命名空间中?

我有一个python3.5项目,我决定为每个模块创建一个类。我决定这样做是因为我发现我的文件很长而且我很难理解发生了什么。进行更改后,我觉得我在每个导入文件中都在重复自己:fromschool.studentimportStudentfromschool.classroomimportClassRoomfromschool.teacherimportTeacher有什么办法可以通过重复吗?我希望我的导入更像:fromschoolimportStudent,ClassRoom,Teacher 最佳答案 使用__init__模块来完成这

Python & Pandas - 按天分组并计算每一天

我是pandas的新手,现在我不知道如何安排我的时间序列,看看它:date&timeofconnection19/06/201712:3919/06/201712:4019/06/201713:1120/06/201712:0220/06/201712:0421/06/201709:3221/06/201718:2321/06/201718:5121/06/201719:0821/06/201719:5022/06/201713:2222/06/201713:4122/06/201718:0123/06/201716:1823/06/201717:0023/06/201719:2523

python - pandas:通过拆分所有行(一列)中的字符串值和聚合函数进行分组

如果我有这样的数据集:idperson_namesalary0[alexander,william,smith]450001[smith,robert,gates]650002[bob,alexander]560003[robert,william]800004[alexander,gates]70000如果我们对薪水列求和,那么我们将得到316000我真的很想知道如果我们将这个数据集(包含相同的字符串值)中的拆分名称的所有薪水相加,那么名字为“alexander、smith等”(不同)的人的薪水是多少。输出:groupsum_salaryalexander171000#sumfrom

python - 如何在 matplotlib 中制作分组箱线图

我有三种算法,A、B和C。我在不同的数据集上运行它们,并想在Python中将它们的运行时间绘制成分组箱线图。作为我想要的视觉示例,我画了一幅糟糕的图,但希望它能说明问题。如果我在python中的数据是这样的:importnumpyasnpimportrandomdata={}data['dataset1']={}data['dataset2']={}data['dataset3']={}n=5fork,vindata.iteritems():upper=random.randint(0,1000)v['A']=np.random.uniform(0,upper,size=n)v['B'

python - 使用 pandas Grouper 按十年开始对 DataFrame 进行分组

我有一个从01-01-1973到12-31-2014的日常观察数据框。一直在使用PandasGrouper,到目前为止,每个频率的一切都运行良好:我想按70年代、80年代、90年代等年代分组。我试着这样做importpandasaspddf.groupby(pd.Grouper(freq='10Y')).mean()但是,这会将它们分组为73-83、83-93等。 最佳答案 pd.cut还可以指定具有指定开始年份的常规频率。importpandasaspddfdateval01970-01-0100:01:18111979-12-3

python - 分组依据后的注释最大值

我想为每组(b,c)对计算a_priority的最大值。a_priority是一个基于case/when将字符串映射到优先级值的注解。fromdjango.db.modelsimportMax,Case,When,IntegerFieldqs=MyObject.objects.all()qs=qs.annotate(a_priority=Case(When(a='A',then=1),When(a='S',then=2),When(a='Q',then=3),output_field=IntegerField()))qs=qs.values("b","c").annotate(Max(

python - Pandas - 如何对多个变量进行分组和拆分?

我目前有一些结构如下的数据集:data={'participant':[100,101,102,103,104,105,106,107,108,109],'step_name':['first','first','second','third','second','first','first','first','second','third'],'title':['acceptable','acceptable','notacceptable','acceptable','notacceptable','acceptable','notacceptable','acceptable',