2016-04-11 20 views
1

Yeni pandalar için, çok-dizinli bir veri çerçevesinde 4 sütuna sahip olduğum pandalarla bazı veri ağı işlemlerini yönetmeye çalışıyorum ve burada değerin olduğu yerde fazladan bir sütuna ihtiyacım var Bu sütunda, bir satırdaki değere belirli bir satıra bölünmüş olur.Belirli sütunların/satırların değerleri arasındaki pandalar veri çerçevesiyle ilgili işlemler

Aşağıdaki örnekte, her bir giriş için, "Agg" sütununun her Tür için "Değerler" sütununun "Değerler" e göre bölünmesi için "Değerler" e sahip olmak istiyorum. Calc. Benim asıl kodunda

 Date  Values Agg 
2016-01-01 Type 1 17  1.7 
      Type 2 23  2.3 
      Type 3 11  1.1 
      Calc  10  1.0 
2016-01-02 Type 1 25  0.25 
      Type 2 39  0.39 
      Type 3 34  0.34 
      Calc  100 1.00 
2016-01-03 Type 1 20  1.00 
      Type 2 9  0.45 
      Type 2 12  0.60 
      Calc  20  1.00 

Bir GroupBy "Tarih" ve diğer endeksler vardır: bu değişiklikler db bir sorgudan sonuçlarına bağlı.

Şimdiden teşekkürler!

+0

'df [ 'Agg'] = df [Değerler '] sonra da bulunmaktadır. Div ([ 'Değerler'] df. ILOC [-1])'? – EdChum

+0

Merhaba Ed, cevabınız için teşekkürler. Kodumda birden fazla tarih ve her biri için bir "Calc" satır değeri var. Endekste belirli bir tarih için bölüme özel bir değer istediğimi belirtmenin bir yolunu bulmalıyım. –

+0

Sorunuzu daha iyi açıklamak için çözebilir misiniz? – EdChum

cevap

0

Aşağıdaki kod çalışır. Yazarken çok fazla zaman harcadım, bu yüzden onu burada bırakmak zorundayım. Açıklamalara ihtiyacınız olursa haberim olsun! Maalesef

def func(df1): 
    idx = df1.index.get_level_values(0)[0] 
    df1 = df1.loc[idx] 
    return (df1['Values']/df1.loc['Calc']['Values']).to_frame() 

df.groupby(level=0).apply(func) 
+0

Bazı durumlarda mükemmel çalışıyordu ancak değeri ayırıp kodum için bir extra_column ekledim, bu nedenle bazı veri kayıplarını önlemek için hata yaptım. Teşekkürler! –

İlgili konular