草庐IT

GroupBy1

全部标签

python - pandas - 如何获取 groupby 对象的最后 n 组并将它们组合为数据框

如何在df.groupby()之后获取最后“n”组并将它们合并为一个数据框。data=pd.read_sql_query(sql=sqlstr,con=sql_conn,index_col='SampleTime')grouped=data.groupby(data.index.date,sort=False)完成grouped.ngroups后,我得到的组总数为277。我想合并最后12个组并生成一个数据框。 最佳答案 PandasGroupBy对象是可迭代的。要提取可迭代对象的最后n元素,通常不需要从可迭代对象创建列表并对最后n元

python - Pandas ,将多列的多个功能应用于groupby对象

我想将多列的多个函数应用到一个groupby对象,从而产生一个新的pandas.DataFrame。我知道如何分步完成:by_user=lasts.groupby('user')elapsed_days=by_user.apply(lambdax:(x.elapsed_time*x.num_cores).sum()/86400)running_days=by_user.apply(lambdax:(x.running_time*x.num_cores).sum()/86400)user_df=elapsed_days.to_frame('elapsed_days').join(runn

python - 没有为 pandas boxplot (groupby) 设置标题

当绘制按另一列分组的pandas箱线图时,pandas会自动为绘图添加标题,显示“箱线图按...分组”。有没有办法删除它?我尝试使用suptitle('')根据Pandas:boxplotofonecolumnbasedonanothercolumn但这似乎行不通。我正在使用最新的pandas(0.13.1)版本。 最佳答案 确保你调用的suptitle('')在右图中。In[23]:axes=df.boxplot(by='g')In[24]:fig=axes[0][0].get_figure()In[25]:fig.suptitl

python - Pandas 0.23 groupby 和 pct 更改未返回预期值

对于以下数据框中的每个Name,我试图找出从一个Time到下一个Amount列的百分比变化:创建数据框的代码:importpandasaspddf=pd.DataFrame({'Name':['Ali','Ali','Ali','Cala','Cala','Cala','Elena','Elena','Elena'],'Time':[1,2,3,1,2,3,1,2,3],'Amount':[24,52,34,95,98,54,32,20,16]})df.sort_values(['Name','Time'],inplace=True)我尝试的第一种方法(基于thisquestionan

python - 为什么groupby这么快?

这是对thisone的后续问题,其中jezrael使用pandas.DataFrame.groupby将列表创建速度提高了数百倍。具体来说,设df是一个大的dataframe,那么index=list(set(df.index))list_df=[df.loc(x)forxinindex]和list_df=[xfori,xindf.groupby(level=0,sort=False)]产生相同的结果,后者比前者快200多倍,甚至忽略列表创建步骤。为什么?如果有人能让我理解为什么会有如此巨大的性能差异,我将非常高兴。提前致谢!编辑:正如AlexRiley在他的评论中所建议的,我确认测试

python - 为什么groupby这么快?

这是对thisone的后续问题,其中jezrael使用pandas.DataFrame.groupby将列表创建速度提高了数百倍。具体来说,设df是一个大的dataframe,那么index=list(set(df.index))list_df=[df.loc(x)forxinindex]和list_df=[xfori,xindf.groupby(level=0,sort=False)]产生相同的结果,后者比前者快200多倍,甚至忽略列表创建步骤。为什么?如果有人能让我理解为什么会有如此巨大的性能差异,我将非常高兴。提前致谢!编辑:正如AlexRiley在他的评论中所建议的,我确认测试

python - Pandas groupby 和 qcut

有没有一种方法可以构造Pandasgroupby和qcut命令以返回具有嵌套图block的一列?具体来说,假设我有2组数据,我希望将qcut应用于每组,然后将输出返回到一列。这类似于MSSQLServer的允许按()分区的ntile()命令。ABC0foo0.111foo0.522foo1.033bar0.114bar0.525bar1.03在上面的数据框中,我想在对A进行分区以返回C时将qcut函数应用于B。 最佳答案 importpandasaspddf=pd.DataFrame({'A':'foofoofoobarbarbar

python - Pandas groupby 和 qcut

有没有一种方法可以构造Pandasgroupby和qcut命令以返回具有嵌套图block的一列?具体来说,假设我有2组数据,我希望将qcut应用于每组,然后将输出返回到一列。这类似于MSSQLServer的允许按()分区的ntile()命令。ABC0foo0.111foo0.522foo1.033bar0.114bar0.525bar1.03在上面的数据框中,我想在对A进行分区以返回C时将qcut函数应用于B。 最佳答案 importpandasaspddf=pd.DataFrame({'A':'foofoofoobarbarbar

python - Pandas groupby(),agg() - 如何在没有多索引的情况下返回结果?

我有一个数据框:pe_odds[['EVENT_ID','SELECTION_ID','ODDS']]Out[67]:EVENT_IDSELECTION_IDODDS0100429300529752918.001100429300529752920.002100429300529752921.003100429300529752922.004100429300529752923.005100429300529752924.006100429300529752925.00当我使用groupby和agg时,我得到了一个多索引的结果:pe_odds.groupby(['EVENT_ID','

python - Pandas groupby(),agg() - 如何在没有多索引的情况下返回结果?

我有一个数据框:pe_odds[['EVENT_ID','SELECTION_ID','ODDS']]Out[67]:EVENT_IDSELECTION_IDODDS0100429300529752918.001100429300529752920.002100429300529752921.003100429300529752922.004100429300529752923.005100429300529752924.006100429300529752925.00当我使用groupby和agg时,我得到了一个多索引的结果:pe_odds.groupby(['EVENT_ID','