我有一个如下所示的ndarray
LABEL1 99 113 2010-04-26 20:12:23+00:00
LABEL1 29 143 2010-05-06 20:12:23+00:00
LABEL1 99 323 2010-02-12 20:12:23+00:00
LABEL1 23 223 2010-04-25 20:12:23+00:00
LABEL2 23 23 2010-01-21 20:12:23+00:00
LABEL1 234 123 2010-12-26 20:12:23+00:00
LABEL1 93 133 2010-02-23 20:12:23+00:00
LABEL4 19 1223 2010-07-24 20:12:23+00:00
我需要做一些聚合并作为dict返回。
我最后应该得到的和这个差不多
[
{ 'LABEL1': { 'COLA':577, 'COLB': 1058, 'LAST': '2010-12-26 20:12:23+00:00' } },
{ 'LABEL2': { 'COLA':23, 'COLB': 23, 'LAST': '2010-01-21 20:12:23+00:00' } },
{ 'LABEL4': { 'COLA':19, 'COLB':1223, 'LAST': '2010-07-24 20:12:23+00:00' } }
]
我考虑的方法是转换为DataFrame,然后执行group(). agg ...
aggr = select_df.groupby('LABELS').agg({'LABELS': [('LABELS', 'max')], 'COLA': [('COLA', 'sum'), ('COLB', 'count')], {'LAST': [('LAST', 'max')]})
我对Python有点陌生......做这个所需的所有数据转换都是噩梦......
原始结构是一个列表
[
{ 'Label': 'xxxx', 'LABELS': 'xxxx', 'COLA': ##, 'COLB': ##, 'LAST': 'datetime' },...
]
如果我可以简单地直接聚合这个列表,然后与下一次传递(以块的形式读取列表)连接,以得到上面提到的最终列表...
3条答案
按热度按时间kx7yvsdv1#
你差点就得手了。
代码:
输出:
kupeojn62#
首先将其转换为 Dataframe :
ppcbkaq53#
代码:
输出: