Pandas Kullanarak Zaman Serisi Verileri İşleme ile zaman serileri verileri nasıl analiz edileceğini öğrenin Bu kapsamlı Rehber, Pandas'ın güçlü araçlarını kullanarak verileri görselleştirme, temizleme ve analiz etmenize olanak tanır Hemen okuyun ve veri analizinde ustalaşın!

Pandas, Python programlama dilinin popüler bir veri işleme kütüphanesidir. Pandas sayesinde, zaman serisi verilerinin işlenmesi oldukça kolaylaşır. Bu makalede, Pandas'ın zaman serisi verilerinin oluşturulması, indekslenmesi, yeniden şekillendirilmesi, dönüştürülmesi ve analiz edilmesi gibi farklı konuları ele alınacaktır.
Pandas, zaman serisi verilerinin oluşturulması için birçok farklı yöntem sunar. Tarih aralıkları, rastgele tarihler ve zipleme işlemi ile zaman serisi verileri oluşturulabilir. Ayrıca, Pandas sayesinde zaman serisi verileri indekslenebilir, yeniden şekillendirilebilir ve analiz edilebilir. Resampling yöntemi, istatistiksel analiz için oldukça önemlidir ve analiz için farklı araçlar da mevcuttur.
Zaman Serisi Verilerinin Oluşturulması
Pandas, zaman serisi verilerinin farklı şekillerde oluşturulmasına izin verir. Zaman serisi özellikleri olan datetime sınıfı, timedelta sınıfı, ve frekanslar, Pandas ile birlikte kullanılabilir.
Tarih Aralıkları | Özellikleri |
---|---|
Timestamp | Zaman damgası. |
Period | Farklı günleri, haftaları, ayları, yılları tek bir obje olarak birleştirebilir. |
Timedelta | Sabit bir süreye göre zaman aralıklarını hesaplamak için kullanılır. |
Ayrıca, farklı frekanslarda tarihler oluşturmak da mümkündür. Örneğin, pandas.date_range() yöntemi, belirli bir frekans ve tarih aralığına göre tarihler oluşturabilir.
- Tarih aralığını belirleyin.
- Frekansı belirleyin. Örneğin, gün, saat, dakika veya saniye.
Pandas, ayrıca rastgele tarihler oluşturma işlemi için random date range özelliğini de destekler. Bu işlem, start ve end parametreleri ile limitler oluşturur.
Bir başka yöntem olan zipleme işlemi ile, iki farklı zaman serisini birleştirmek mümkündür. İki zaman serisi zip() yöntemi kullanılarak bir liste içinde sıkıştırılır. Pandas, ziplenmiş iki zaman serisinden yeni bir zaman serisi oluşturmak için from_tuples() yöntemini kullanır.
Zaman Serisi Verilerinin İndekslenmesi
Pandas, zaman serisi verilerinin indekslenmesi için özel olarak tasarlanmıştır. Verilerin doğru şekilde indekslenmesi, verilerin analizi veya işlenmesi için oldukça önemlidir ve Pandas, farklı indeksleme yöntemleri ile bu işlemi kolay bir hale getirir.
Zaman serisi verilerinin indekslenmesi için kullanılacak farklı yöntemlerdatetime, period, timedelta vb. şunlardır:
- datetime: datetime, verilerin belirli tarih ve saatlerle indekslenmesinde kullanılır. datetime, bir tarih ve saat değeri içeren bir nesne oluşturarak kullanılır ve bu nesne daha sonra indeksleme yapmak için kullanılır.
- period: period, belirli bir zaman aralığını temsil eder. Bazı zaman serileri aylar, çeyrekler veya yıllar gibi belirli periyotlarda toplanır ve bu durumda period, indeksleme yapmak için kullanılır.
- timedelta: timedelta, iki tarih arasındaki farkı temsil eder. İki tarih arasındaki farkı hesaplamak için kullanılır ve bu fark, indeksleme yapmak için kullanılır.
Zaman serisi verilerinin doğru bir şekilde indekslenmesi, verilerin analizinde büyük önem taşır ve Pandas'ın sağladığı farklı indeksleme yöntemleri ile bu işlem kolay bir hale getirilir.
datetime Yöntemi İle İndeksleme
datetime yöntemi, Pandas ile zaman serisi verilerini indekslemede kullanılan bir yöntemdir. Bu yöntemde kullanılan öğeler, tarih ve saat bilgileri olarak belirlenir. datetime sınıfı, bu öğelerin kullanımını sağlamak için özel olarak tasarlanmıştır.
datetime sınıfı ile bir tarih-saat satırı oluşturmak için birçok yöntem kullanılabilir. Bunlar arasında, date (), time () ve datetime () yer alır. date () yöntemi sadece tarih oluştururken, time () yöntemi sadece saat oluşturur. datetime () yöntemi ise hem tarih hem de saat oluşturur.
Yöntem | Açıklama |
---|---|
date() | Tarih oluşturur. |
time() | Saat oluşturur. |
datetime() | Hem tarih hem de saat oluşturur. |
datetime sınıfı metodları da kullanılarak bir tarih-saat satırı oluşturulabilir. Bu metodların kullanımı ise oldukça kolaydır. Örneğin, "datetime (yıl, ay, gün, saat, dakika, saniye)" yöntemi ile tarih-saat satırı oluşturulabilir. datetime sınıfının diğer metodları arasında tarih ve saat bilgilerini ayrı ayrı belirleyen "strftime" yöntemi de yer alır.
Indekslemede datetime sınıfının özellikleri kullanılabilir. Bu özellikler arasında year, month, day, hour, minute, second gibi tarih ve saat bilgileri yer alır. Örneğin, "df['2019-01-01':'2019-01-31']" kodu ile belirtilen tarih aralığına göre bir dataframe oluşturulabilir.
DateTime Satırı Oluşturma
Pandas, datetime satırlarının oluşturulmasında kullanılan farklı yöntemler sunar. Bunlar arasında en yaygın kullanılanlar arasında pd.to_datetime()
ve pd.date_range()
yer almaktadır.
Fonksiyon | Açıklama |
---|---|
pd.to_datetime() | Bir tarih dizisi veya bir zaman damgasını datetime nesnesine dönüştürmek için kullanılır. |
pd.date_range() | Belirli bir zaman diliminde bir tarih aralığı oluşturmak için kullanılır. |
Örneğin, bir tarih dizisi üzerinde çalışırken, pd.to_datetime()
fonksiyonu ile bu tarih dizisi otomatik olarak datetime
nesnesine dönüştürülebilir. Ancak, tek bir tarih veya zaman damgası oluşturmak için, pd.Timestamp()
fonksiyonu da kullanılabilir. Ayrıca, pd.Timedelta()
fonksiyonu da belirli bir zaman aralığını ifade etmek için kullanılabilir.
Özetle, datetime satırı oluşturmak için Pandas'ın sunduğu farklı yöntemler öğrenmek zaman serisi verilerinin işlenmesi açısından oldukça önemlidir.
Öğeleri Kullanarak Indeksleme Yapmak
datetime sınıfının özellikleri, zaman serisi verilerinin öğelerine göre indeksleme yapma işlemlerinde oldukça kullanışlıdır. Özellikle, bir zaman serisi verisi içinde yer alan gün, ay, yıl gibi öğeler kullanılarak indeksleme yapmak, verinin doğru bir şekilde işlenmesini sağlar.
datetime sınıfının öğeleri arasında en yaygın olanları şunlardır:
Öğe | Açıklama |
---|---|
year | Yıl öğesi |
month | Ay öğesi |
day | Gün öğesi |
hour | Saat öğesi |
minute | Dakika öğesi |
second | Saniye öğesi |
microsecond | Mikrosaniye öğesi |
Bu öğeler kullanılarak, datetime sınıfının indeksleme özellikleri kullanılarak, bir zaman serisi verisi içinde yer alan spesifik bir öğe aralığına göre verileri filtrelemek mümkündür. Örneğin, "2021 yılından başlayarak, ayın 3. gününde toplanan veriler" gibi bir indeksleme yapmak.
- Öğeleri kullanarak indeksleme yapmak, verileri spesifik özelliklere göre filtreleyerek daha doğru bir analiz yapmayı sağlar.
- datetime sınıfının öğeleri, datetime objelerinin oluşturulması ve manipülasyonu için oldukça kullanışlıdır.
Timedelta Yöntemi İle İndeksleme
Pandas kütüphanesi, timedelta sınıfını kullanarak indeksleme yapma imkanı sağlar. Bu yöntem, tarihler arasındaki farkları hesaplamak için oldukça kullanışlıdır.
timedelta sınıfını kullanarak indeksleme yapmak için öncelikle datetime sınıfını kullanarak tarihler arasındaki farkı hesaplamamız gerekiyor. timedelta sınıfı, tarih aralıklarını kontrol etmek için kullanılan bir sınıftır.
Örnek olarak, bir dizi tarih oluşturup her tarihin üzerine 3 gün ekleyerek yeni bir indeks oluşturmak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
```pythonimport pandas as pdfrom datetime import datetime, timedelta
start_date = datetime(2021, 1, 1)dates = [start_date + timedelta(days=x) for x in range(10)]df = pd.DataFrame(index=dates, columns=['A'])df = df.fillna(0)```
Bu kod, belirli bir tarihten başlayarak 10 yeni tarih oluşturacak ve her tarihin üzerine 3 gün ekleyecek. Sonrasında, bu tarihleri bir indeks olarak kullanarak bir Pandas DataFrame oluşturulacaktır.
Bu aşamadan sonra, timedelta sınıfını kullanarak oluşturulan indeksleme işlemlerini gerçekleştirebilirsiniz. Örneğin, verilerinizi 2 günlük zaman aralıklarına göre yeniden şekillendirmek isterseniz, aşağıdaki kodu kullanabilirsiniz:
```python# 2 günlük zaman aralığı için indeksleme yapma işlemidf.resample('2D').sum()```
Bu kod, verilerinizi 2 günlük zaman aralıklarında toplayarak yeniden şekillendirecektir. timedelta sınıfını kullanarak kolayca zaman serileri oluşturabilir ve analiz edebilirsiniz.
Zaman Serilerinin Yeniden Şekillendirilmesi
Pandas, zaman serisi verilerinin yeniden şekillendirilmesi için farklı yöntemler sunmaktadır. Zaman serilerinin yeniden şekillendirilmesi, zaman serilerinin farklı dönemlerine yönelik analizler yapmak için oldukça önemlidir. Pandas kütüphanesi ile zaman serilerinin yeniden şekillendirilmesi için kullanılabilecek farklı yöntemler şunlardır:
- Resampling: Zaman serilerinin yeniden şekillendirilmesi için resampling işlemi kullanılabilir. Resampling işlemi, farklı frekanslarda tarihler arasında zaman serilerinin yeniden örneklenmesi işlemidir. Bu yöntemle, zaman serilerinin geçmişine yönelik analizler yapmak daha kolay hale gelir. Resampling işlemi için kullanılabilecek farklı yöntemler şunlardır: mean (), sum (), resample ().
- Shifting ve Lagging: Serilerin bir zaman dilimi içinde kaydırılması veya lagging işlemi de zaman serilerinin yeniden şekillendirilmesinde kullanılan yöntemlerdendir. Bu yöntemler, zaman serilerinin değişimi konusunda daha net veriler sağlar.
Zaman serilerinin yeniden şekillendirilmesi için kullanılabilecek bu yöntemler, zaman serilerinin dönemsel analizlerinin yanı sıra, zaman serilerinin geleceği konusunda tahminler yapmak için de oldukça önemlidir. Pandas kütüphanesi ile zaman serilerinin yeniden şekillendirilmesi, aradığınız verileri daha net bir şekilde elde etmenize olanak sağlar.
Resampling
Resampling, zaman serisi verilerinin yeniden şekillendirilmesi için kullanılan bir işlemdir. Bu işlem, veri örnekleme frekansını değiştirmekte ve örnekleme sayısını artırmak ya da azaltmak mümkün olmaktadır. Resampling işlemi, zaman serisi verilerinin analizinde oldukça önemlidir ve farklı yöntemler sayesinde detaylı analizler yapmak mümkün hale gelmektedir.
Resampling işlemi için kullanılabilecek farklı yöntemler vardır. Örneğin, mean () yöntemi verilerin aritmetik ortalamasını, sum () yöntemi ise verilerin toplamını hesaplamak için kullanılabilmektedir. Daha özelleşmiş yöntemleri de kullanmak mümkündür. resample () yöntemi ise belirli bir frekans aralığında yeniden örnekleme yapılmasını sağlamaktadır. Bu sayede zaman serisi verilerinin daha detaylı bir şekilde incelenmesine imkân tanınmaktadır.
- Mean (): Verilerin aritmetik ortalamasını hesaplamak için kullanılmaktadır.
- Sum (): Verilerin toplamını hesaplamak için kullanılmaktadır.
- Resample (): Belirli bir frekans aralığında yeniden örnekleme yapılmasını sağlamaktadır.
Resampling Yöntemleri
Resampling işlemi, zaman serisi verilerinin örnekleme frekansını değiştirmek için kullanılan bir tekniktir. Bu teknik, zaman serisi verilerinin farklı gözlem sıklıklarına dönüştürülmesine olanak sağlar. Bu işlem sırasında kullanılabilecek farklı resampling yöntemleri vardır.
- mean(): Bu yöntem, örnekleme periyodu boyunca zaman serisi verilerinin aritmetik ortalamalarını hesaplar.
- sum(): Bu yöntem, örnekleme periyodu boyunca zaman serisi verilerinin toplamlarını hesaplar.
- resample(): Bu yöntem, örnekleme periyodunu belirli bir sıklığa yeniden örnekleyebilir veya örneklem periyodu boyunca belirli bir fonksiyonu uygulayabilir.
Resampling yöntemlerinin seçimi, analiz edilen verilerin özelliklerine ve amacına bağlıdır. Örneğin, verilerin ani değişimlerinin incelenmesi gerekiyorsa, düşük gözlem frekansına sahip bir zaman serisi verisinden yüksek gözlem frekansına sahip bir veriye yeniden örneklemleme yapmak faydalı olabilir. Bu da verilerdeki değişimlerin daha ayrıntılı bir şekilde incelenmesine olanak sağlayacaktır.
Shifting ve Lagging
Shifting işlemi, bir zaman serisi verisindeki tüm değerleri belirtilen sayıda zaman dilimi kadar kaydırmaya olanak tanır. Bu işlem, zaman serisi verilerinde zamanlama ile oynamaya imkan verir. Shifting işlemi, serilerdeki trendleri, döngüleri, mevsimsel değişimleri ve hatta daha karmaşık kalıpları analiz etmek için kullanılır.
Lagging işlemi ise, serilerdeki değerleri belirli bir süre geri alarak analiz etmeyi sağlar. Daha spesifik bir şekilde, lagging işlemiyle, herhangi bir zaman serisi verisindeki herhangi bir önceki değeri veya bir sonraki değeri analiz edebilirsiniz. Bu işlem, zaman serisi verilerinin hızlı bir şekilde analiz edilmesine yardımcı olur.
Bu işlemler, zaman serisi verilerinin analizinde oldukça kullanışlıdır. Shifting işlemi, verileri zaman içinde belirli bir zaman dilimi boyunca nasıl hareket ettiğini analiz etmek için kullanılır. Lagging işlemi ise, veriler arasındaki ilişkileri daha iyi anlamanıza yardımcı olur. Her iki işlem de, zaman serisi verilerine daha derinlemesine bakarak, trendleri, mevsimsel değişimleri ve döngüleri daha iyi anlamaya yardımcı olur.
Zaman Serilerinin Analizi
Pandas, zaman serisi verilerinin analizinde oldukça kullanışlı bir araçtır. Bu kütüphane kullanılarak, zaman serileri ile ilgili farklı analizler yapmak mümkündür.
Örneğin, zaman serisi verileri ile trendlerin, sezonluk değişimlerin ve dalgalanmaların incelenmesi mümkündür. Zaman serilerinin trendleri, genellikle hareketli ortalama yöntemi kullanılarak belirlenir ve sezonluk değişimler ise resampling yöntemi ile belirlenebilir.
Pandas ile zaman serilerinin analizi yapılırken, moving window yöntemi kullanılarak, belirli bir dönem içindeki verilerin toplanması ve ortalama değerinin hesaplanması mümkündür. Bu sayede, verilerin çok daha iyi incelenmesi sağlanır.
Analiz Yöntemi | Kullanım Amacı |
---|---|
Resampling | Zaman serisi verilerinin farklı frekanslarda yeniden şekillendirilmesi |
Moving window | Belirli bir dönemdeki verilerin toplanarak ortalama değerinin hesaplanması |
Autocorrelation | Zaman serisi verilerinin kendisi ile ilişkisinin incelenmesi |
Ayrıca, Pandas ile zaman serisi verilerinin grafiği çizilebilir ve bu sayede, verilerin daha iyi anlaşılması sağlanabilir. Zaman serisi verilerinin analizinde kullanılacak farklı araçlar ile ilgili detaylı bilgi, Pandas dokümantasyonunda bulunabilir.
Resampling ile İstatistiksel Analiz
Zaman serisi verilerinin analizi, farklı istatistiksel araçlar kullanılarak yapılabilir. Resampling işlemi, zaman serisi verilerinin analizinde oldukça önemli bir yere sahiptir. Resampling işlemi, veri setindeki örneklem sayısını artırmak veya azaltmak için kullanılır. Bu işlem, verilerin daha düzgün bir şekilde görüntülenebilmesi ve daha doğru sonuçlar elde edebilmek için yapılır.
Resampling işlemi ile birlikte kullanılabilecek farklı istatistiksel analiz araçları vardır. Örneğin, mean (), sum (), resample () fonksiyonları ile verilerin ortalaması, toplamı ve interpolasyonu hesaplanabilir. Ayrıca, farklı tarih aralıklarındaki verilerin karşılaştırılması ve farklı frekanslardaki verilerin birleştirilmesi gibi işlemler de yapılabilir.
Resampling işlemi, zaman serisi verilerinin analizinde oldukça önemli olduğu kadar, yanlış kullanıldığında da sonuçları etkileyebilir. Bu nedenle, resampling işlemi yapmadan önce verilerin yapısını ve işlemin amacını iyi anlamak gerekmektedir.
Moving Window İle İstatistiksel Analiz
Pandas'ın moving window (hareketli pencere) yöntemi, zaman serisi verilerinin analizinde oldukça popüler bir araçtır. Moving window, belirli bir pencere boyutu içinde verilerin hareket ederek analiz edilmesini sağlar.
Bu yöntem, zaman serisi verilerinin trendlerini, yenilenmelerini ve dalgalanmalarını analiz etmek için kullanılır. Moving window ile kullanılabilecek farklı istatistiksel araçlar arasında ortalama, standart sapma, varyans ve kovaryans gibi araçlar bulunmaktadır.
Örneğin, belirli bir hisse senedinin günlük kapanış fiyatını ele alalım. Eğer 7 günlük bir pencere boyutu seçersek, her 7 günün sonunda, son 7 günün kapanış fiyatları listedeki 7 elemanlık pencerenin içinde yer alır.
Gün | Kapanış Fiyatı | 7 Günlük Hareketli Ortalama |
1 | 10 | - |
2 | 12 | - |
3 | 8 | - |
4 | 15 | - |
5 | 16 | - |
6 | 19 | - |
7 | 14 | 13.57 |
8 | 12 | 14.29 |
9 | 13 | 14.14 |
10 | 18 | 14.57 |
Yukarıdaki tabloda, 7 günlük hareketli ortalama hesaplaması, ilk 7 gün için yapılamaz ancak 8. günden itibaren hesaplamalar yapılabilir. 8. günden itibaren, son 7 günün kapanış fiyatları ortalaması hesaplanarak 7 günlük hareketli ortalama hesaplanmaya başlar.
Moving window yöntemi ile yapılabilen bu tür analizler, finans ve ekonomi gibi alanlarda oldukça yaygın bir şekilde kullanılmaktadır.