2017-05-26 4 views
1

Hier ist eine TabelleGruppierung oder Pivot mit einem Filter

A | B | C ... 
1 | D1| x 
1 | D2| x 
1 | D3| x 
2 | E3| x 
2 | D1| x 
3 | G5| Null 
3 | E3| x 

I Spalte A gruppieren möchten und herausfiltern alle ‚Gruppen‘ mit einer Null in Spalte C in einem Datenrahmen, und erhalten Sie alle Gruppen 'mit dem Null in Spalte C in einem anderen Dataframe.

danken Ihnen

+0

Was Sie nach dem Gruppieren der Daten zu tun? Was ist deine gewünschte Ausgabe? – Allen

+0

Ich habe den Output, den ich suchte, mit einem Filter bekommen. Ich brauchte nur Hilfe mit der Null-Syntax. Danke für alle, die dazu beigetragen haben. – RMichalowski

Antwort

0

Verwendung filter innerhalb eines groupby

Angenommen, die Datenrahmen df

df = pd.DataFrame(dict(
     A=[1, 1, 1, 2, 2, 3, 3], 
     B=['D1', 'D2', 'D3', 'E3', 'D1', 'G5', 'E3'], 
     C=[1, 2, 3, 4, 5, np.nan, 6] 
    )) 
df 

    A B C 
0 1 D1 1.0 
1 1 D2 2.0 
2 1 D3 3.0 
3 2 E3 4.0 
4 2 D1 5.0 
5 3 G5 NaN 
6 3 E3 6.0 

Dann:

df.groupby('A').filter(lambda x: x.C.notnull().all()) 

    A B C 
0 1 D1 1.0 
1 1 D2 2.0 
2 1 D3 3.0 
3 2 E3 4.0 
4 2 D1 5.0