Obliczanie różnicy między dwoma rzędami w Pythonie / Pandach
W Pythonie, jak mogę odwołać się do poprzedniego wiersza i obliczyć coś przeciwko niemu? W szczególności pracuję zdataframes
wpandas
- Mam ramkę danych pełną informacji o cenie akcji, która wygląda tak:
Date Close Adj Close
251 2011-01-03 147.48 143.25
250 2011-01-04 147.64 143.41
249 2011-01-05 147.05 142.83
248 2011-01-06 148.66 144.40
247 2011-01-07 147.93 143.69
Oto jak stworzyłem tę ramkę danych:
import pandas
url = 'http://ichart.finance.yahoo.com/table.csv?s=IBM&a=00&b=1&c=2011&d=11&e=31&f=2011&g=d&ignore=.csv'
data = data = pandas.read_csv(url)
## now I sorted the data frame ascending by date
data = data.sort(columns='Date')
Począwszy od wiersza numer 2 lub w tym przypadku, myślę, że jest to 250 (PS - czy to jest indeks?), Chcę obliczyć różnicę między 2011-01-03 a 2011-01-04, dla każdego wpisu w tej ramce danych . Uważam, że właściwym sposobem jest napisanie funkcji, która pobiera bieżący wiersz, a następnie oblicza poprzedni wiersz i oblicza różnicę między nimi, używającpandas
apply
funkcja do aktualizacji ramki danych o wartość.
Czy to właściwe podejście? Jeśli tak, czy powinienem użyć indeksu, aby określić różnicę? (uwaga - nadal jestem w trybie dla początkujących Pythona, więc indeks może nie być właściwym terminem, ani nawet właściwym sposobem jego implementacji)