在python3中将ndarray转换为dict

在python3中将ndarray转换为dict,python,pandas,list,dataframe,arraylist,Python,Pandas,List,Dataframe,Arraylist,我有一张像这样的照片 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

我有一张像这样的照片

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

我对Python有点陌生。。。而且做噩梦需要所有的数据转换

原始结构是一个列表

  [
    { 'Label': 'xxxx', 'LABELS': 'xxxx', 'COLA': ##, 'COLB': ##, 'LAST': 'datetime' },...
  ]

如果我可以直接聚合此列表,然后与下一个过程连接(列表以块的形式读取),得到上面提到的最终列表…

首先将其转换为数据帧:

df:

    0       1   2   3
0   LABEL1  29  143 2010-05-06  20:12:23+00:00
1   LABEL1  99  323 2010-02-12  20:12:23+00:00
2   LABEL1  23  223 2010-04-25  20:12:23+00:00
3   LABEL2  23  23  2010-01-21  20:12:23+00:00
4   LABEL1  234 123 2010-12-26  20:12:23+00:00
5   LABEL1  93  133 2010-02-23  20:12:23+00:00
6   LABEL4  19  1223    2010-07-24  20:12:23+00:00
{'LABEL1': {'x': 93, 'y': 133, 'z': '2010-02-23', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}
{'LABEL1': {'x': 478, 'y': 945, 'z': '2010-12-26', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}


结果:

    0       1   2   3
0   LABEL1  29  143 2010-05-06  20:12:23+00:00
1   LABEL1  99  323 2010-02-12  20:12:23+00:00
2   LABEL1  23  223 2010-04-25  20:12:23+00:00
3   LABEL2  23  23  2010-01-21  20:12:23+00:00
4   LABEL1  234 123 2010-12-26  20:12:23+00:00
5   LABEL1  93  133 2010-02-23  20:12:23+00:00
6   LABEL4  19  1223    2010-07-24  20:12:23+00:00
{'LABEL1': {'x': 93, 'y': 133, 'z': '2010-02-23', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}
{'LABEL1': {'x': 478, 'y': 945, 'z': '2010-12-26', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}
编辑: 然后按标签分组,并按总和最大值进行聚合

df.groupby(["label"])\
    .agg({"x": "sum", "y": "sum", "z": "max", "w": "max"}).T.to_dict('dict')
结果:

    0       1   2   3
0   LABEL1  29  143 2010-05-06  20:12:23+00:00
1   LABEL1  99  323 2010-02-12  20:12:23+00:00
2   LABEL1  23  223 2010-04-25  20:12:23+00:00
3   LABEL2  23  23  2010-01-21  20:12:23+00:00
4   LABEL1  234 123 2010-12-26  20:12:23+00:00
5   LABEL1  93  133 2010-02-23  20:12:23+00:00
6   LABEL4  19  1223    2010-07-24  20:12:23+00:00
{'LABEL1': {'x': 93, 'y': 133, 'z': '2010-02-23', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}
{'LABEL1': {'x': 478, 'y': 945, 'z': '2010-12-26', 'w': '20:12:23+00:00'},
 'LABEL2': {'x': 23, 'y': 23, 'z': '2010-01-21', 'w': '20:12:23+00:00'},
 'LABEL4': {'x': 19, 'y': 1223, 'z': '2010-07-24', 'w': '20:12:23+00:00'}}

你的尝试非常接近

代码:

输出:

{'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'}}

您能否共享
打印(您的_数组)
的输出?原始结构是一个列表,您正在将列表转换为数据数组,是吗?请提供一个合适的。就快到了。。如何添加每个组的所有值?现在,如果每个组('label')需要sum()的值,它只显示一个。对于时间戳,我需要输入latest(latest in time)@AndreCouture您能打印出您的输入吗?