2016-04-28 76 views
0

算NULL和NOT NULL值我有一個數據幀的Python在數據幀

Date Name 
1995 Harry 
1995 John 
1997 NaN 
1995 NaN 
1998 Nina 
1998 NaN 
1997 Carrie 

我需要數爲NaN /(不NAN)值爲每個日期。所以輸出應該是

Date Nan/NaN+notNaN 
1995 1/3 
1997 1/2 
1998 1/2 

我與 df.groupby(['Date']).agg({'Name' : 'count'}) 努力,但我可以做同樣的 df.groupby(['Date']).agg({'df.Name.isnull()' : 'count'})或不服這樣呢?

回答

3

什麼類似的東西:

In [52]: df.groupby('Date').agg({'Name': lambda x: x.isnull().sum(), 'Date': 'count'}) 
Out[52]: 
     Name Date 
Date 
1995  1  3 
1997  1  2 
1998  1  2 

或者你可以做到以下幾點:

In [60]: df.groupby('Date').agg({'Name': lambda x: x.isnull().sum().astype(str) + '/' + str(x.size)}) 
Out[60]: 
    Name 
Date 
1995 1/3 
1997 1/2 
1998 1/2 

或者與format

In [62]: df.groupby('Date').agg({'Name': lambda x: '{}/{}'.format(x.isnull().sum(), len(x))}) 
Out[62]: 
    Name 
Date 
1995 1/3 
1997 1/2 
1998 1/2 
+0

wohoo,謝謝! – Polly