草庐IT

GroupBy1

全部标签

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 pandas 线性回归 groupby

我正在尝试通过pandaspython数据框对一组进行线性回归:这是数据框df:groupdatevalueA01-02-201616A01-03-201615A01-04-201614A01-05-201617A01-06-201619A01-07-201620B01-02-201616B01-03-201613B01-04-201613C01-02-201616C01-03-201616#importstandardpackagesimportpandasaspdimportnumpyasnp#importMLpackagesfromsklearn.linear_modelimpo

python - GroupBy 操作使用整个数据框对值进行分组

我有2个这样的数据框...np.random.seed(0)a=pd.DataFrame(np.random.randn(20,3))b=pd.DataFrame(np.random.randint(1,5,size=(20,3)))我想为b中的4个组找到a中值的平均值。这...a[b==1].sum().sum()/a[b==1].count().sum()...适用于一次做一组,但我想知道是否有人能想出更简洁的方法。我的预期结果是1-0.0887152-0.3400433-0.04559640.582136dtype:float64谢谢。 最佳答案

python - 在 pandas 的 groupby 结果中添加 'count' 列?

我认为这是一个相当基本的问题,但我似乎找不到解决方案。我有一个类似于以下内容的Pandas数据框:importpandasaspddf=pd.DataFrame({'A':['x','x','y','z','z'],'B':['p','p','q','r','r']})df它创建了一个这样的表:AB0xp1xp2yq3zr4zr我正在尝试创建一个表来表示该数据框中不同值的数量。所以我的目标是这样的:ABc0xp21yq12zr2不过,我找不到实现此目的的正确函数。我试过:df.groupby(['A','B']).agg('count')这会生成一个包含3行(如预期)但没有“计数”列的

python - 类型错误 : unhashable type: 'list' when use groupby in python

使用groupby方法时出现问题:data=pd.Series(np.random.randn(100),index=pd.date_range('01/01/2001',periods=100))keys=lambdax:[x.year,x.month]data.groupby(keys).mean()但它有一个错误:TypeError:unhashabletype:'list'。我想按年按月分组,然后计算均值,为什么会出错? 最佳答案 list对象不能用作键,因为它不可散列。您可以改用tuple对象:>>>{[1,2]:3}Tr

python - Pandas :将 TimeGrouper 与另一个 Groupby 参数结合使用

我有以下数据框:df=pd.DataFrame({'Branch':'AAAAAB'.split(),'Buyer':'CarlMarkCarlJoeJoeCarl'.split(),'Quantity':[1,3,5,8,9,3],'Date':[DT.datetime(2013,1,1,13,0),DT.datetime(2013,1,1,13,5),DT.datetime(2013,10,1,20,0),DT.datetime(2013,10,2,10,0),DT.datetime(2013,12,2,12,0),DT.datetime(2013,12,2,14,0),]})fr

python - 为什么 pandas groupby().transform() 需要唯一索引?

我想使用groupby().transform()对(排序的)数据集中的每个记录block进行自定义(累积)转换。除非我确保我有一个唯一的key,否则它不起作用。为什么?这是一个玩具示例:df=pd.DataFrame([[1,1],[1,2],[2,3],[3,4],[3,5]],columns='ab'.split())df['partials']=df.groupby('a')['b'].transform(np.cumsum)df给出预期的:abpartials01111123223333444359但是如果'a'是一个键,一切都会出错:df=df.set_index('a')

python - pandas groupby 计算字符串在列上的出现次数

我想计算一个字符串在分组的pandas数据框列中的出现次数。假设我有以下数据框:catAcatBscoresAX6-4RETAX6-46-4AY6-3RETBZ6-0RETBZ6-1RET首先,我想按catA和catB分组。对于这些组中的每一个,我想计算scores列中RET的出现次数。结果应该是这样的:catAcatBRETAX1AY1BZ2按两列分组很容易:grouped=df.groupby(['catA','catB'])但下一步是什么? 最佳答案 调用apply在groupby的“分数”列中对象并使用矢量化str方法con

python - 从 groupby 对象创建字典,Python

假设我有一个数据框:df=pd.DataFrame({'Type':['Pokemon','Pokemon','Bird','Pokemon','Bird','Pokemon','Pokemon','Bird'],'Name':['Jerry','Jerry','FlappyBird','Mudkip','Pigeon','Mudkip','Jerry','Pigeon']})我根据类型对它进行分组:printdf.groupby(['Type','Name'])['Type'].agg({'Frequency':'count'})FrequencyTypeNameBirdFlappy

python - Pandas Groupby 只取前 N 组

这个问题在这里已经有了答案:Selectmultiplegroupsfrompandasgroupbyobject(5个答案)关闭7年前。我有一些DataFrame,我想按ID分组,e。例如:importpandasaspddf=pd.DataFrame({'item_id':['a','a','b','b','b','c','d'],'user_id':[1,2,1,1,3,1,5]})printdf生成:item_iduser_id0a11a22b13b14b35c16d5[7rowsx2columns]我可以轻松地按id分组:grouped=df.groupby("item_id