草庐IT

groupbys

全部标签

python - 如何在不添加额外索引的情况下使用 Pandas groupby apply()

我经常想通过组合分组DataFrame的多个列来创建一个新的DataFrame。apply()函数允许我这样做,但它要求我创建一个不需要的索引:In[359]:df=pandas.DataFrame({'x':3*['a']+2*['b'],'y':np.random.normal(size=5),'z':np.random.normal(size=5)})In[360]:dfOut[360]:xyz0a0.201980-0.4703881a0.190846-2.0890322a-1.1310100.2278593b-0.263865-1.9065754b-1.335956-0.722

python - 从 Pandas Groupby Dataframe 创建等高线图

我有以下Pandas数据框:In[66]:hdf.size()Out[66]:ab00.0210040.11199030.21865790.34173490.42027230.51009060.6563860.760800.835960.923911.019631.117301.216631.316141.41309...1860.2150.390.4210.541870.230.3100.4220.5101880.0110.1190.2200.3130.470.550.61Length:4572,dtype:int64你看,a从0...188和b在每个组中从某个值到某个值。并且作为指

python - 按一定顺序排序(情况: pandas DataFrame Groupby)

我想更改以下代码显示的订单日期。我想要的是顺序为(周一、周二、周三、周四、周五、周六、周日)的结果-我应该说,按特定预定义的顺序按键排序吗?这是我的代码,需要一些调整:f8=df_toy_indoor2.groupby(['device_id','day'])['dwell_time'].sum()print(f8)当前结果:device_iddaydevice_112Thu436518Wed636451Fri770307Tue792066Mon826862Sat953503Sun1019298device_223Mon2534895Thu2857429Tue3303173Fri354

python - Pandas groupby 最大总和

我正在尝试在Pandas中一起使用groupby、nlargest和sum函数,但无法使其正常工作。StateCountyPopulationAlabamaa100Alabamab50Alabamac40Alabamad5Alabamae1...Wyominga.51180Wyomingb.51150Wyomingc.5156Wyomingd.515我想使用groupby按州选择,然后按人口获得前2个县。然后仅使用前2个县的人口数字来计算该州的总和。最后,我会得到一个包含州和人口(前2个县)的列表。我可以让groupby和nlargest正常工作,但是获取nlargest(2)的总和是

python - groupby 上的 pandas concat 数组

我有一个DataFrame,它是由groupbywith创建的:agg_df=df.groupby(['X','Y','Z']).agg({'amount':np.sum,'ID':pd.Series.unique,})在我对agg_df应用一些过滤后,我想连接IDagg_df=agg_df.groupby(['X','Y']).agg({#Zisnotiningroupbynow'amount':np.sum,'ID':pd.Series.unique,})但我在第二个'ID':pd.Series.unique处遇到错误:ValueError:Functiondoesnotreduc

python - Pandas Groupby 应用函数来计算大于零的值

PandasGroupby应用函数计算大于零的值我按以下方式使用groupby和agg:df.groupby('group')['a'].agg({'mean':np.mean,'std':np.std})我还想计算同一列['a']中大于零的值下面一行按照我的意愿进行计数,sum(x>0forxindf['a'])但是我在申请groupby时无法正常工作。以下是我尝试将pandas计算应用于groupby的示例:df.groupby('group')['a'].apply(sum(x>0forxindf['a']))但我收到一条错误消息:AttributeError:'numpy.in

python - groupby 多个值,并绘制结果

我正在使用一些有关杀菌剂使用情况的数据,其中包含年份、杀菌剂、使用量,以及PandasDataFrame中一些不相关的列。它看起来有点像:Year,State,Fungicide,Value2011,California,A,128792011,California,B,295722011,Florida,A,86452011,Florida,B,195732009,California,A,87642009,California,B,98643,...我想要的是随时间推移使用的总杀菌剂的单个图,并为每种单独的杀菌剂绘制一条线(不同颜色)。我使用.groupby获取每年使用的每种杀菌剂

python - pandas groupby 聚合元素列表加法

我有一个pandas数据框,如下所示:XY71455[334.0,319.0,298.0,323.0]71455[3.0,8.0,13.0,10.0]57674[54.0,114.0,124.0,103.0]我想执行聚合groupby以元素方式添加存储在Y列中的列表。我试过的代码:df.groupby('X').agg({'Y':sum})结果如下:YX71455[334.0,319.0,298.0,323.0,75.0,55.0,...所以它连接了列表,而不是按元素对它们求和。然而,预期的结果是:XY71455[337.0,327.0,311.0,333.0]57674[54.0,1

python - pandas groupby 删除列

我正在按操作进行简单分组,尝试比较分组均值。正如您在下面看到的,我从一个更大的数据框中选择了特定的列,所有缺失值都已从中删除。但是当我分组时,我丢失了几列:我从来没有在pandas上遇到过这种情况,而且我在堆栈溢出上也没有发现任何其他类似的东西。有没有人有任何见解? 最佳答案 我认为这是自动排除“讨厌的”列,描述了here.示例:df=pd.DataFrame({'C':{0:-0.91985400000000006,1:-0.042379,2:1.2476419999999999,3:-0.00992,4:0.290213,5:0

python - 计算大于 pandas groupby 中的值的项目

我有Yelp数据集,我想计算所有超过3星的评论。我通过这样做得到评论的数量:reviews.groupby('business_id')['stars'].count()现在我想获得超过3星的评论数,所以我从here中获得灵感来尝试这个:reviews.groupby('business_id')['stars'].agg({'greater':lambdaval:(val>3).count()})但这只是像以前一样给我所有星星的计数。我不确定这是否是正确的方法?我在这里做错了什么。lambda表达式不遍历stars列的每个值吗?编辑:好吧,我觉得很愚蠢。我应该使用sum函数而不是co