deque in python pandas
Я использую питонdeque()
реализовать простой круговой буфер:
from collections import deque
import numpy as np
test_sequence = np.array(range(100)*2).reshape(100,2)
mybuffer = deque(np.zeros(20).reshape((10, 2)))
for i in test_sequence:
mybuffer.popleft()
mybuffer.append(i)
do_something_on(mybuffer)
Мне было интересно, если естьЭто простой способ получить то же самое в Пандах, используяSeries
(или жеDataFrame
). Другими словами, как я могу эффективно добавить одну строку в конце и удалить одну строку в началеSeries
или же ?DataFrame
Редактировать: Я попробовал это:
myPandasBuffer = pd.DataFrame(columns=('A','B'), data=np.zeros(20).reshape((10, 2)))
newpoint = pd.DataFrame(columns=('A','B'), data=np.array([[1,1]]))
for i in test_sequence:
newpoint[['A','B']] = i
myPandasBuffer = pd.concat([myPandasBuffer.ix[1:],newpoint], ignore_index = True)
do_something_on(myPandasBuffer)
Но это'больно медленнее, чемdeque()
метод.