次のような形式の一連のデータポイント(タプル)がリストにあります。
points = [(1, 'a'), (2, 'b'), (2, 'a'), (3, 'd'), (4, 'c')]
各タプルの最初の項目は整数であり、確実にソートされます。各タプルの2番目の値は、任意の文字列です。
シリーズの最初の値でリストにグループ化する必要があります。したがって、間隔が3の場合、上記のリストは次のように分割されます。
[['a', 'b', 'a', 'd'], ['c']]
私は次の関数を作成しました。これは小さなデータセットで正常に機能します。ただし、大量の入力には不十分です。大規模なデータセットを処理できるように、これを書き換え/最適化/最小化する方法に関するヒントはありますか?
def split_series(points, interval):
series = []
start = points[0][0]
finish = points[-1][0]
marker = start
next = start + interval
while marker <= finish:
series.append([point[1] for point in points if marker <= point[0] < next])
marker = next
next += interval
return series