草庐IT

groupby-apply

全部标签

python - Pandas groupby 没有将按列分组转换为索引

pandasgroupby的默认行为是将groupby列转换为索引,并将它们从数据框的列列表中删除。例如,假设我有一个包含这些列的数据框col1|col2|col3|col4如果我以这种方式应用包含col2和col3列的groupbydf.groupby(['col2','col3']).sum()数据框df在列列表中不再具有['col2','col3']。它们会自动变成结果数据帧的索引。我的问题是如何对列执行groupby并将该列保留在数据框中? 最佳答案 df.groupby(['col2','col3'],as_index=F

python - Pandas groupby 没有将按列分组转换为索引

pandasgroupby的默认行为是将groupby列转换为索引,并将它们从数据框的列列表中删除。例如,假设我有一个包含这些列的数据框col1|col2|col3|col4如果我以这种方式应用包含col2和col3列的groupbydf.groupby(['col2','col3']).sum()数据框df在列列表中不再具有['col2','col3']。它们会自动变成结果数据帧的索引。我的问题是如何对列执行groupby并将该列保留在数据框中? 最佳答案 df.groupby(['col2','col3'],as_index=F

python - 在 pandas groupby 之后并行化应用

我在groupby之后使用rosetta.parallel.pandas_easy并行化apply,例如:fromrosetta.parallel.pandas_easyimportgroupby_to_series_to_framedf=pd.DataFrame({'a':[6,2,2],'b':[4,5,6]},index=['g1','g1','g2'])groupby_to_series_to_frame(df,np.mean,n_jobs=8,use_apply=True,by=df.index)但是,有没有人想出如何并行化返回DataFrame的函数?正如预期的那样,此代码

python - 在 pandas groupby 之后并行化应用

我在groupby之后使用rosetta.parallel.pandas_easy并行化apply,例如:fromrosetta.parallel.pandas_easyimportgroupby_to_series_to_framedf=pd.DataFrame({'a':[6,2,2],'b':[4,5,6]},index=['g1','g1','g2'])groupby_to_series_to_frame(df,np.mean,n_jobs=8,use_apply=True,by=df.index)但是,有没有人想出如何并行化返回DataFrame的函数?正如预期的那样,此代码

python - pandas groupby 可以聚合成一个列表,而不是 sum、mean 等吗?

我已经成功地使用groupby函数按组对给定变量求和或平均,但是有没有办法聚合成一个值列表,而不是得到一个结果?(这还叫聚合吗?)我不完全确定这是我应该采取的方法,所以下面是我想用玩具数据进行的转换示例。也就是说,如果数据看起来像这样:ABC110221122011181101021113212103140我想要得到的结果类似于以下内容。我不完全确定这是否可以通过groupby聚合到列表中来完成,并且不知道从这里去哪里。假设输出:ABCNew1New2New3New4New5New611022122011810102111312103140也许我应该改为追求支点?将数据放入列的顺序无关

python - pandas groupby 可以聚合成一个列表,而不是 sum、mean 等吗?

我已经成功地使用groupby函数按组对给定变量求和或平均,但是有没有办法聚合成一个值列表,而不是得到一个结果?(这还叫聚合吗?)我不完全确定这是我应该采取的方法,所以下面是我想用玩具数据进行的转换示例。也就是说,如果数据看起来像这样:ABC110221122011181101021113212103140我想要得到的结果类似于以下内容。我不完全确定这是否可以通过groupby聚合到列表中来完成,并且不知道从这里去哪里。假设输出:ABCNew1New2New3New4New5New611022122011810102111312103140也许我应该改为追求支点?将数据放入列的顺序无关

python - 进行 groupby 时保留其他列

我在pandas数据帧上使用groupby来删除所有没有特定列最小值的行。像这样的:df1=df.groupby("item",as_index=False)["diff"].min()但是,如果我有两个以上的列,则其他列(例如我的示例中的otherstuff)将被删除。我可以使用groupby保留这些列,还是必须找到其他方法来删除行?我的数据如下:itemdiffotherstuff01211112213732-104213524962-6273008329最终应该是这样的:itemdiffotherstuff011212-622300但我得到的是:itemdiff01112-623

python - 进行 groupby 时保留其他列

我在pandas数据帧上使用groupby来删除所有没有特定列最小值的行。像这样的:df1=df.groupby("item",as_index=False)["diff"].min()但是,如果我有两个以上的列,则其他列(例如我的示例中的otherstuff)将被删除。我可以使用groupby保留这些列,还是必须找到其他方法来删除行?我的数据如下:itemdiffotherstuff01211112213732-104213524962-6273008329最终应该是这样的:itemdiffotherstuff011212-622300但我得到的是:itemdiff01112-623

python - 从 pandas apply() 返回多列

我有一个Pandas数据框,df_test。它包含一个“大小”列,它表示以字节为单位的大小。我使用以下代码计算了KB、MB和GB:df_test=pd.DataFrame([{'dir':'/Users/uname1','size':994933},{'dir':'/Users/uname2','size':109338711},])df_test['size_kb']=df_test['size'].astype(int).apply(lambdax:locale.format("%.1f",x/1024.0,grouping=True)+'KB')df_test['size_mb'

python - 从 pandas apply() 返回多列

我有一个Pandas数据框,df_test。它包含一个“大小”列,它表示以字节为单位的大小。我使用以下代码计算了KB、MB和GB:df_test=pd.DataFrame([{'dir':'/Users/uname1','size':994933},{'dir':'/Users/uname2','size':109338711},])df_test['size_kb']=df_test['size'].astype(int).apply(lambdax:locale.format("%.1f",x/1024.0,grouping=True)+'KB')df_test['size_mb'