Pandas DataFrame'deki bir değişkenin logaritmik geri dönüşleri hakkında veri sahibim. Bu iadeleri 100'den (veya herhangi bir rasgele sayıdan) başlayan bir endeksli zaman serisine çevirmek istiyorum. Yani ilk değer diyelim ki, içinde, 1 Ocak 2000 100'e eşit olarak ayarlanırPandalar: İadeler verisinden [100'den başlayarak] [100'den başlayarak] oluşturma
ve: enflasyon endeksi oluşturulurken veya farklı büyüklükte iki seri karşılaştırırken Bu tip operasyonlar örneğin çok yaygındır 2 Ocak 2000'de bir sonraki değer 100 * exp'e eşittir (return_2000_01_02) vb. Örnek aşağıda:
Ben bu SO soru sunulan bir Pandalar DataFrame satır .iteritems (kullanarak) döngü biliyoruz: iterating row by row through a pandas dataframe
Ben de elimden biliyorum DataFrame'i bir numpy dizisine dönüştürün, bu dizideki değerlerden geçiş yapın ve numpy dizisini bir Pandas DataFrame'e geri döndürün. .as_matrix() yöntemi burada açıklanmaktadır: Bu Python ve numpy indeksleme operatörlerini [] kullanarak satırları yenilemek yapmanın http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.Series.html
Daha da basit bir şekilde Pandalar belgelenen olarak endeksleme: http://pandas.pydata.org/pandas-docs/stable/indexing.html Sorun şu ki, tüm bu çözümler (iterit hariç) pandalar dışında "dışarıda" çalışmaktadır ve okuduğum şeye göre verimsizdir.
Tamamen Panda'ları kullanarak dizine eklenmiş bir zaman dizisi oluşturmanın bir yolu var mı? Ve değilse, lütfen, bunu yapmanın en etkili yolunu önerebilir misiniz? Çözümlerin bulunması şaşırtıcı derecede zordur, çünkü indeks ve indekslemenin Pandalar'da belirli bir anlamı vardır, bu zamandan sonra değilim.
tabanı 1 ile sorununuza çözüm '(1 + df.return) .cumprod()', nerede 'df' dataframe'iniz –