deque w pandach Pythona
Używam Pythonadeque()
zaimplementować prosty bufor kołowy:
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)
Zastanawiałem się, czy istnieje prosty sposób uzyskania tego samego w Pandach za pomocąSeries
(lubDataFrame
). Innymi słowy, jak mogę skutecznie dodać pojedynczy wiersz na końcu i usunąć pojedynczy wiersz na początkuSeries
lubDataFrame
?
Edytować: Próbowałem tego:
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)
Ale to boleśnie wolniej niżdeque()
metoda.