以下是一个示例解决方案,用于按毫秒时间戳分组合并多行:
from datetime import datetime
# 输入数据示例
data = [
{'timestamp': 1629493000000, 'value': 'A'},
{'timestamp': 1629493000001, 'value': 'B'},
{'timestamp': 1629493000002, 'value': 'C'},
{'timestamp': 1629493001000, 'value': 'D'},
{'timestamp': 1629493001001, 'value': 'E'},
{'timestamp': 1629493002000, 'value': 'F'},
]
# 按时间戳排序数据
sorted_data = sorted(data, key=lambda x: x['timestamp'])
# 分组合并数据
result = []
group = []
prev_timestamp = sorted_data[0]['timestamp']
for entry in sorted_data:
timestamp = entry['timestamp']
value = entry['value']
if timestamp - prev_timestamp == 1:
# 时间戳连续,将当前行添加到当前组
group.append(value)
else:
# 时间戳不连续,将当前组添加到结果,并创建新的组
result.append({'timestamp': prev_timestamp, 'values': group})
group = [value]
prev_timestamp = timestamp
# 添加最后一组到结果
result.append({'timestamp': prev_timestamp, 'values': group})
# 输出结果
for entry in result:
timestamp = entry['timestamp']
values = ', '.join(entry['values'])
print(f'Timestamp: {timestamp}, Values: {values}')
这个示例代码假设data
是一个字典列表,每个字典包含一个时间戳(以毫秒为单位)和一个值。首先,它使用sorted()
函数按时间戳对数据进行排序。然后,它遍历排序后的数据,并根据时间戳的连续性将数据分组。最后,它输出分组后的结果。
运行上述代码的输出结果应为:
Timestamp: 1629493000000, Values: A, B, C
Timestamp: 1629493001000, Values: D, E
Timestamp: 1629493002000, Values: F
请注意,这只是一个示例解决方案,你可能需要根据具体的需求进行适当的修改。
上一篇:按函数筛选pandas索引