打包Pandasgroupby输出到容器

wbrvyc0a  于 2023-01-01  发布在  其他
关注(0)|答案(1)|浏览(93)

我有一个大的dataframe,我在上面运行这样的groupby操作。

df_3[filter_3].groupby(grpby_3).agg({'AOT in Cases':lambda x: round(100*np.mean(x),0),'COT by ME (1.3.2)':lambda x: round(100*np.mean(x),0)}).unstack('Quarter')

这样就得到了一个多索引输出,如下所示:

AOT in Cases            COT by ME (1.3.2)   
                                 Quarter    2022Q2  2022Q3  2022Q4  2022Q2  2022Q3  2022Q4
                              Lane  Carrier Scac                        

BLOOMINGTON, CA - APPLE VALLEY, CA  LEGS    94.0    86.0    95.0    100.0   95.0    98.0

我想要的是将它打包到一个容器中(理想情况下是一个元组),用于'AOT in Cases'和'COT by ME(1.3.2)',并删除四分之一列。

Lane  Carrier Scac   AOT in Cases             COT by ME (1.3.2)                           

BLOOMINGTON, CA - APPLE VALLEY, CA  LEGS       (94.0,   86.0,   95.0)   (100.0, 95.0,   98.0)

理想情况下,如果它可以编码在同一组行,这是最好的。如果没有,我可以运行另一行,以获得所需的结果。
我想可能是apply(lambda x: ))不知何故可能会有帮助。但无法得到周围的头。
任何线索都会有帮助。
还有一个额外的问题,虽然不是很重要,你会注意到在groupby().agg()方法中我对“平均值”的乘法做了一个lambda运算,有没有更快更短的方法?

agg({'AOT in Cases':lambda x: round(100*np.mean(x),0)
xdnvmnnf

xdnvmnnf1#

虽然没有人回答,但我在另一个不同的问题中发现了类似的方法。这建议使用list(zip(series1,series2,...)) &它解决了我的问题。
我本可以删除这个问题,但考虑到其他人可能会再次提出这个问题,就这样离开了。

相关问题