2016-03-22 31 views
1

Veri çerçevemdeki belirli sütunlar arasında boşluk var. Grupla toplu olarak ne zaman gruplara ayırırım, açıkça belirtilmedikçe sonuç sütunlarında görünmez.Pandalar grup toplaması kümelemeyi birleştirir

Örnek,

df = pd.DataFrame() 
df['A'] = [1, 2, 1, 2] 
df['B'] = [1, 2, 3, 4] 
df['C'] = map(lambda s: (s,), df['B']) 
print df 
    A B  C 
0 1 1 (1,) 
1 2 2 (2,) 
2 1 3 (3,) 
3 2 4 (4,) 

Sonra kolon C toplama

print df.groupby('A').sum() 
    B 
A 
1 4 
2 6 

görünür Ama gelmez aşağıdaki şekilde yoksa ben beklendiği gibi açıkça göründüğü belirtirseniz

print df[['A', 'C']].groupby('A').sum() 
     C 
A   
1 (1, 3) 
2 (2, 4) 

Lütfen bana nedenİlk durumdasütun görünmedi mi?

Varsayılan olarak gitmek istiyorum. Sütun B değil, kolon C tarafından agrega için

+0

Eğer df.groupby 'gibi bir' C' ihmal etmedi ('A') [ 'C'] toplamı() ' ? –

+0

Kesinlikle bir şey eksik olabilir ama tam olarak ne olduğunu bilmiyorum. Tamam, ek bir sütun ekleyeyim df ['D'] = [5, 6, 7, 8] '. Sonra df.groupby ('A'). Sum() 'çıktılarının tümünün B ',' C' ve 'D' sütunlarının hepsine sahip olmasını isterim ancak B' ve' D'’yi almıyorum. 'C'. – TruLa

cevap

1

.

import pandas as pd 
import numpy as np 

df = pd.DataFrame() 
df['A'] = [1, 2, 1, 2] 
df['B'] = [1, 2, 3, 4] 
df['C'] = map(lambda s: (s,), df['B']) 
print df 

df.at[0,'B'] = 10 
print df 
    A B  C 
0 1 10 (1,) 
1 2 2 (2,) 
2 1 3 (3,) 
3 2 4 (4,) 

print df.groupby('A').sum() 
    B 
A  
1 13 
2 6 

print df.groupby('A')['B'].sum() 
1 13 
2  6 
Name: B, dtype: int64 
+0

Üzgünüm, seni yakalamadım. Fazladan bir sütun ekleyebilirim df ['D'] = [5, 6, 7, 8] '. Df.groupby ('A'). Sum() 'nin çıktısı hem B hem de D dizinlerini içerir, ancak“ C ”yi içermez. Tüm sütunlarla birleştirmek istiyorum. – TruLa

+0

A 'sütunu dönüştürülmüş endeks, bu yüzden toplanmış' B 've' C 'sütunları olabilir. Ancak "C" sütunu kullanılmıyor, çünkü grup [[toplamı] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.sum.html) bazı sütunları atlıyor. – jezrael

+1

http://wesmckinney.com/blog/groupby-fu-improvements-in-grouping-and-aggregating-data-in-pandas/, part 'Yeni: Omitting" sıkıntı "sütunlarını kontrol edebilirsiniz. – jezrael