Tüm yılları analiz etmek için tamamlanmamış yılları bir veri tabanından kaldırmak istiyorum. Ben here baktım ama soru eski ve çözülmemiş. Bu gönderi, bu kodun bazılarının geldiği previous one'dan itibaren izlenmektedir.Pandaların veri tabanından tamamlanmayan yılların kaldırılması
Dataframe: yıl
dates = pd.date_range('20070101',periods=3200)
df = pd.DataFrame(np.random.randn(3200), columns =list ('A'))
df['date'] = dates
df = df[['date','A']]
df.head()
date A
0 2007-01-01 -0.961392
1 2007-01-02 0.832136
2 2007-01-03 1.007776
3 2007-01-04 -1.144121
4 2007-01-05 -0.850436
Endeksi,
count = df.set_index([df['date'].dt.year, df['date'].dt.day]).count(level=0)
count
date A
date
2007 365 365
2008 366 366
2009 365 365
2010 365 365
2011 365 365
2012 366 366
2013 365 365
2014 365 365
2015 278 278
Bırak bütün yıl az 365 gün gün saymak:
count = count.drop(count[count.date < 365].index)
Ben şu ana 'uncount' istiyor Bu nedenle, şu şekilde görünecek şekilde döner:
date A
0 2007-01-01 -0.961392
1 2007-01-02 0.832136
2 2007-01-03 1.007776
3 2007-01-04 -1.144121
4 2007-01-05 -0.850436
fakat 2015 yılı çok kısa olduğu için 2015'i içermez. Değişken bir yıl oluşturun
CEVAP
years = count[count['date'] >= 365].index
yeniden biçimlendirmek dataframe
df = df[df['date'].dt.year.isin(years)]
df
Out[11]:
date A
0 2007-01-01 -0.095152
1 2007-01-02 -0.560478
2 2007-01-03 0.793423
... .... .... ...
2919 2014-12-29 -1.616931
2920 2014-12-30 -3.499278
2921 2014-12-31 0.913521
kalması için df'yi filtreler. Teşekkürler, bu yanıtın karşılık gelmesi için gönderiyi düzenledim – Pad