草庐IT

cumulative_sum

全部标签

python - PySpark DataFrame 上的 Sum 操作在类型正常时给出 TypeError

我在PySpark中有这样的DataFrame(这是一次take(3)的结果,dataframe很大):sc=SparkContext()df=[Row(owner=u'u1',a_d=0.1),Row(owner=u'u2',a_d=0.0),Row(owner=u'u1',a_d=0.3)]相同的owner将有更多的行。我需要做的是在分组后对每个所有者的字段a_d的值求和,如b=df.groupBy('owner').agg(sum('a_d').alias('a_d_sum'))但这会引发错误TypeError:unsupportedoperandtype(s)for+:'int

python - Python Pandas 中的 GroupBy 函数,如 SUM(col_1*col_2)、加权平均值等

是否可以在不使用的情况下直接计算两列的乘积(或例如总和)grouped.apply(lambdax:(x.a*x.b).sum()使用起来快很多(不到我机器上一半的时间)df['helper']=df.a*df.bgrouped=df.groupby(something)grouped['helper'].sum()df.drop('helper',axis=1)但我真的不喜欢必须这样做。例如,计算每组的加权平均值很有用。这里的lambda方法是grouped.apply(lambdax:(x.a*x.b).sum()/(df.b).sum())再一次比将helper除以b.sum()

python - 在大型 csv 文件上使用 sum() 的 pandas groupby?

我有一个大文件(19GB左右),我想将其加载到内存中以对某些列执行聚合。文件看起来像这样:id,col1,col2,col3,1,12,15,132,18,15,133,14,15,133,14,185,213请注意,我在加载到数据框后使用列(id,col1)进行聚合,还要注意这些键​​可能会连续重复几次,例如:3,14,15,133,14,185,213对于一个小文件,下面的脚本可以完成这项工作importpandasaspddata=pd.read_csv("data_file",delimiter=",")data=data.reset_index(drop=True).grou

javascript - 是否有等效于 Python 的 "sum"内置函数的 JavaScript 或 jQuery?

假设我有一个数组式的十进制数容器。我要总数。在Python中我会这样做:x=[1.2,3.4,5.6]sum(x)在JavaScript中有类似的简洁方法吗? 最佳答案 另一种方法,一个简单的迭代函数:functionsum(arr){varresult=0,n=arr.length||0;//mayuse>>>0toensurelengthisUint32while(n--){result+=+arr[n];//unaryoperatortoensureToNumberconversion}returnresult;}varx=[

python - 在 Django 中注释导致 'None' 值的 SUM 聚合函数

正在做我的第一个真正的Django项目,需要指导。背景:我的项目是一个reddit克隆。用户提交链接+文本。访客投票赞成或反对。有一个social_ranking算法,作为后台脚本每约2分钟运行一次,根据净票数和内容的新鲜度重新排列所有提交。相当普通的东西。问题:按votes排序无法正常工作,因为votes被初始化为None而不是0。这会导致投了None票的提交排名低于投反对票的提交。我已经调试了这个问题好几天了-运气不好。细节:我已经覆盖了模型的模型管理器,为查询集注释了一个Sum聚合函数,然后按“社会排名”和投票对所述查询集进行排序。下面是我的models.py。我使用的是Djan

python 和 NumPy : sum of an array slice

我有一个一维numpy数组(array_)和一个Python列表(list_)。以下代码有效,但效率低下,因为切片涉及不必要的副本(当然适用于Python列表,我相信也适用于numpy数组?):result=sum(array_[1:])result=sum(list_[1:])重写它的好方法是什么? 最佳答案 切片numpy数组不会生成副本,就像在列表的情况下那样。作为一个基本的例子:importnumpyasnpx=np.arange(100)y=x[1:5]y[:]=1000printx[:10]这会产生:[010001000

Python 数据框 : cumulative sum of column until condition is reached and return the index

我是Python的新手,目前面临一个我无法解决的问题。我真的希望你能帮助我。英语不是我的母语,所以如果我不能正确表达自己,我很抱歉。假设我有一个包含两列的简单数据框:indexNum_AlbumsNum_authors01041152443710004144538Num_Abums_tot=sum(Num_Albums)=30我需要对Num_Albums中的数据进行累加,直到达到某个条件。注册满足条件的索引,并从Num_authors中获取对应的值。例子:Num_Albums的累积总和,直到总和等于30的50%±1/15(-->15±2):10=15±2?No,thencontinue

python - django 聚合 : sum then average

使用django的ORMannotate()和/或aggregate():我想根据一个类别字段进行汇总,然后对每个日期的类别值进行平均。我尝试使用两个annotate()语句来完成它,但得到了一个FieldError。我这样做:queryset1=self.data.values('date','category').annotate(sum_for_field=Sum('category'))它输出一个ValuesQuerySet对象,其中包含如下内容(因此每个类别值的总和):[{'category':'apples','date':'2015-10-12',sum_for_fiel

python - NumPy 1.9.0 : ValueError: probabilities do not sum to 1

我有一个很大的代码,它在某一时刻根据从probabilitydensityfunction中获取的概率对数组中的值进行采样。(PDF)。为此,我使用numpy.random.choice在numpy1.8.0之前它工作得很好。这是一个MWE(文件pdf_probs.txt可以下载here):importsimplejsonimportnumpyasnp#Readprobabilitiesfromfile.f=open('pdf_probs.txt','r')probs=simplejson.load(f)f.close()printsum(probs)#问题是,在使用numpy1.9.

python - 避免 Python sum 默认启动 arg 行为

我正在使用一个Python对象,它实现了__add__,但没有子类化int。MyObj1+MyObj2工作正常,但是sum([MyObj1,MyObj2])导致了TypeError,因为sum()首先尝试0+MyObj。为了使用sum(),我的对象需要__radd__来处理MyObj+0或者我需要提供一个空对象作为start参数。所讨论的对象并非设计为空。在任何人问之前,该对象既不是列表也不是字符串,因此使用join()或itertools无济于事。编辑细节:该模块有一个SimpleLocation和一个CompoundLocation。我将Location缩写为Loc。SimpleL