2016-04-28 36 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