在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您能打印出您的输入吗?