草庐IT

join_group

全部标签

python - Pandas 数据框 : how to apply describe() to each group and add to new columns?

df:namescoreA1A2A3A4A5B2B4B6B8想要以下面的形式获取以下新数据框:namecountmeanstdmin25%50%75%maxA53............B45............如何从df.describe()中提取信息并重新格式化?谢谢 最佳答案 还有更短的:)printdf.groupby('name').describe().unstack(1)Nothingbeatsone-liner:In[145]:printdf.groupby('name').describe().reset_in

python - Pandas group by on groupby 到列表列表

给定一个结构如下的数据框:rule_id|ordering|sequence_id1|0|121|1|131|1|142|0|12|1|22|2|12我需要将它转换成:rule_id|sequences1|[[12],[13,14]]2|[[1],[2],[12]]从groupby到groupby到list的操作看起来很简单——但是我不能让它在pandas中工作。df.groupby(['rule_id','ordering'])['sequence_id'].apply(list)留给我rule_idordering10[12]1[13,14]20[1]1[2]2[12]如何应用另一

python - 3.x 中的 "join"是否变慢?

当我遇到这个怪癖时,我只是在胡闹。我想确保我没有疯。以下代码(适用于2.x和3.x):fromtimeitimporttimeitprint('gen:%s'%timeit('"-".join(str(n)forninrange(1000))',number=10000))print('list:%s'%timeit('"-".join([str(n)forninrange(1000)])',number=10000))在同一台机器上每个版本运行3次。注意:我将计时分组在同一行以节省空间。在我的Python2.7.5上:gen:2.37875941643,2.44095773486,2

Python:更好地理解迭代器和 `join()`

join()函数接受一个可迭代对象作为参数。但是,我想知道为什么有:text='asdfqwer'这个:''.join([cforcintext])明显快于:''.join(cforcintext)对于长字符串(即text*10000000)也是如此。观察两个长字符串执行的内存占用,我认为它们都在内存中创建一个且只有一个字符列表,然后将它们连接成一个字符串。所以我猜也许区别仅在于join()如何从生成器中创建此列表以及Python解释器在看到[cforcintext]时如何做同样的事情。但是,再次重申,我只是在猜测,所以我希望有人能证实/否定我的猜测。 最佳

python Pandas : Assign Last Value of DataFrame Group to All Entries of That Group

在PythonPandas中,我有一个DataFrame。我按列对这个DataFrame进行分组,并希望将一列的最后一个值分配给另一列的所有行。我知道我可以通过这个命令选择组的最后一行:importpandasaspddf=pd.DataFrame({'a':(1,1,2,3,3),'b':(20,21,30,40,41)})print(df)print("-")result=df.groupby('a').nth(-1)print(result)结果:ab01201121223033404341-ba121230341如何将此操作的结果分配回原始数据框,以便我得到类似的东西:abb_

python - 数据帧 : add column with the size of a group

我有以下数据框:fsqdigitsdigits_type011odd121odd231odd3112even4222even51013odd61113odd我想添加最后一列count,其中包含属于digits组的fsq的数量,即:fsqdigitsdigits_typecount011odd3121odd3231odd33112even24222even251013odd261113odd2因为有3个fsq行的digits等于1,所以有2个fsq行的digits等于2等 最佳答案 In[395]:df['count']=df.gro

python - Pandas Merge (pd.merge) 如何设置索引和join

我有两个pandas数据框:dfLeft和dfRight,以日期作为索引。向左:cusipfactorLdate2012-01-03XXXX4.52012-01-03YYYY6.2....2012-01-04XXXX4.72012-01-04YYYY6.1....dfRight:idc__idfactorRdate2012-01-03XXXX5.02012-01-03YYYY6.0....2012-01-04XXXX5.12012-01-04YYYY6.2两者的形状都接近于(121900,3)我尝试了以下合并:test=pd.merge(dfLeft,dfRight,left_inde

javascript - 为什么 'join' 比正常连接更快?

我见过几个来自不同语言的例子,这些例子明确地证明连接列表(数组)的元素比仅仅连接字符串快很多倍。为什么?在两种操作下都起作用的内部算法是什么?为什么一种比另一种更快?这是我的意思的Python示例:#Thisisslowx='a'x+='b'...x+='z'#Thisisfastx=['a','b',...'z']x=''.join(x) 最佳答案 连接函数中的代码预先知道它被要求连接的所有字符串以及这些字符串的大小,因此它可以在开始操作之前计算最终的字符串长度。因此它只需要为最终字符串分配一次内存,然后它就可以将每个源字符串(和

Python Spark 数据帧 : Better way to export groups to text file

我想将数据导出到单独的文本文件;我可以用这个hack来做到这一点:forrinsqlContext.sql("SELECTDISTINCTFIPSFROMMY_DF").map(lambdar:r.FIPS).collect():sqlContext.sql("SELECT*FROMMY_DFWHEREFIPS='%s'"%r).rdd.saveAsTextFile('county_{}'.format(r))使用Spark1.3.1/Python数据帧的正确方法是什么?我想在一份工作中完成,而不是N(或N+1)份工作。可能是:saveAsTextFileByKey()

python - 在 pandas 中是否有类似 GroupBy.get_group 的东西,但有一个可选的默认值?

我有一个DataFramedf,我已经对其进行了“分组”。我正在寻找一个类似于get_group(name)的函数,除了它不是在名称不存在时抛出KeyError,而是返回一个空的DataFrame(或其他一些值),类似于dict.get的工作方式:g=df.groupby('x')#doesn'twork,butwouldbenice:i=g.get_group(1,default=[])#doeswork,butishardtoread:i=g.obj.take(g.indices.get(1,[]),g.axis)是否已经有提供此功能的功能?编辑:在许多方面,GroupBy对象由字