我有一本字典,我想在沒有熊貓的情況下進行透視或分組:
這是我所擁有的
Dict = [{'eventTimeMinutes': '2021-10-31 00:00', 'View': 4},
{'eventTimeMinutes': '2021-10-31 00:00', 'Delete': 4},
{'eventTimeMinutes': '2021-10-31 00:00', 'Create': 2},
{'eventTimeMinutes': '2021-10-31 00:00', 'Modify': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'View': 4},
{'eventTimeMinutes': '2021-10-31 00:01', 'Delete': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'Create': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'Modify': 1}]
我想要這樣
[{'eventTimeMinutes': '2021-10-31 00:00',
'View': 4,
'Delete': 4,
'Create': 2,
'Modify': 1
},
{'eventTimeMinutes': '2021-10-31 00:01',
'View': 4,
'Delete': 1,
'Create': 1,
'Modify': 1
}
]
uj5u.com熱心網友回復:
只需迭代,在分鐘更改時添加新條目。這假設串列按時間排序。請注意,您將其稱為 a Dict,但它不是 dict,而是一個串列。
Dict = [{'eventTimeMinutes': '2021-10-31 00:00', 'View': 4},
{'eventTimeMinutes': '2021-10-31 00:00', 'Delete': 4},
{'eventTimeMinutes': '2021-10-31 00:00', 'Create': 2},
{'eventTimeMinutes': '2021-10-31 00:00', 'Modify': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'View': 4},
{'eventTimeMinutes': '2021-10-31 00:01', 'Delete': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'Create': 1},
{'eventTimeMinutes': '2021-10-31 00:01', 'Modify': 1}]
d2 = []
for row in Dict:
if not d2 or d2[-1]['eventTimeMinutes'] != row['eventTimeMinutes']:
d2.append( row )
else:
d2[-1].update(row)
print(d2)
uj5u.com熱心網友回復:
您可以使用groupbyfromitertools對 上的字典進行分組eventTimeMinutes,但您需要先按順序對串列進行排序,以便分組作業:
from itertools import groupby
result = []
for _, value in groupby(sorted(data, key=lambda x:x['eventTimeMinutes']),
key= lambda x: x['eventTimeMinutes']):
temp = {}
for d in value:
temp.update(**d)
result.append(temp)
輸出:
>>> result
[{'eventTimeMinutes': '2021-10-31 00:00',
'View': 4,
'Delete': 4,
'Create': 2,
'Modify': 1},
{'eventTimeMinutes': '2021-10-31 00:01',
'View': 4,
'Delete': 1,
'Create': 1,
'Modify': 1}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/352458.html
