我有一个名为df1的数据帧,如下所示:
details endFrame id indexID object startFrame
List of dictionaries 1 1111 78 0 Motorbike 1
List of dictionaries 2 3647 78 0 Motorbike 1112
List of dictionaries 3 3678 78 0 Motorbike 3649
List of dictionaries 4 704 120 3 Pedestrian 66
List of dictionaries 5 817 120 3 Pedestrian 705
List of dictionaries 6 922 141 5 Car 818
字典列表如下:
[{'y2': 627, 'frame': 1, 'visibility': 0, 'y1': 603, 'score': 1, 'x2': 770, 'x1': 759, 'class': 1}, {'y2': 623, 'frame': 2, 'visibility': 0, 'y1': 599, 'score': 1, 'x2': 777, 'x1': 766, 'class': 1},....]
我想做的是将具有相同indexID的行合并在一起。另外,我必须将每个词典列表扩展为一个长列表,而不是在“详细信息”单元格中包含多个列表。换句话说,一旦合并,详细信息单元将具有非常长的词典列表。
我不必担心df1中“ endframe”,“ id”和“ startframe”列中发生的情况。但是,每个合并的indexID仍必须具有一个Object。请注意,df1中具有相同indexID的每一行都将具有相同的对象。
示例输出:
details endFrame id indexID object startFrame
List of dictionaries 1,2 and 3 1111 78 0 Motorbike 1
List of dictionaries 4 and 5 704 120 3 Pedestrian 66
List of dictionaries 6 922 141 5 Car 818
答案 0 :(得分:1)
WITH CTE (DateTime, Compteur, Valeur) AS
(
SELECT DateTime, Compteur, CASE WHEN Valeur<0 OR Valeur IS NULL THEN 0 ELSE Valeur END AS Valeur
FROM
(
SELECT DateTime, TagName AS Compteur
, Value - coalesce( LAG(Value, 1, NULL) OVER (PARTITION BY TagName ORDER BY DateTime),0) AS Valeur
FROM History
WHERE TagName IN ('A','B')
AND DateTime >='2018-12-31 23:59:00'
AND wwRetrievalMode='Delta'
)t
WHERE t.DateTime >='2018-12-31 23:59:59'
)
SELECT DateTime, Compteur, Valeur INTO #tempcounters from CTE