2016-03-22 16 views
0

Aşağıdaki veri karta sahip olduğum şey.Pandalar: İki değeri olan bir sütundan minimum değeri al

In [1]: df 
Out[1]: 
ID  datetime  impressions 
cc2 1/2/2016 12:00 1,200   
svd 1/2/2016 12:00 1,080    
xz4 1/2/2016 12:15 1,480  
xgb 1/2/2016 12:15 1,214   
xz4 1/2/2016 12:30 1,157  
x4y 1/2/2016 12:30 1,049 

Aşağıdaki olacağını istiyorum Ne:

In [1]: df 
Out[1]: 
ID  datetime  impressions   
svd 1/2/2016 12:00 1,080    
xgb 1/2/2016 12:15 1,214  
x4y 1/2/2016 12:30 1,049 

Bu GroupBy elde edilebilir() ama henüz bunu başarmak mümkün olmamıştır düşünüyorum.

Ben izlenimler değerleri filtrelemek için kullanabileceğiniz maalesef hiçbir ek sütun yoktur İstediğiniz çıktı 3 satır var ancak aşağıdaki neden yaptığını

+0

oper mantığını açıklayabilir misiniz tirme? yani neden sadece 2 benzersiz tarihiniz varsa, 3 satırlık çıkışınız var mı? – Yaron

+0

üzgünüm düzenledim; Tarihin ikinci bölümünü yanlış yazdım. – mburke05

cevap

2

Belirsiz istediğini (nedense bu Nielsen yapıları kendi veri. Nasıl) :

In [113]: 
df.loc[df.groupby('datetime')['impressions'].idxmin()] 

Out[113]: 
    ID  datetime impressions 
1 svd 1/2/2016 12:00  1.080 
5 x4y 1/2/2016 12:15  1.049 

Temelde biz 'datetime' üzerine groupby ve 'Gösterimleri' sütununa idxmin arayıp ana df içine endeksi döndü endeksi kullanmak

+0

Üzgünüm, dizinin yanlış yazdım! Cevap verdiğiniz gibi düzenleme sürecindeydim. – mburke05

+0

Yani bu doğru sonuç mu? – EdChum

+0

Sanırım; Bazı hataları kontrol etmek için şimdi datetime sütununu yeniden yazıyordum. SeriesGroupBy nesnesinin nasıl davrandığını açıklayabilir misiniz? Daha önce hiç kullanılmamıştım. – mburke05