Python - 计算数据框中另一列为空的列中的值数

时间:2017-09-08 18:28:30

标签: python pandas

我有以下数据集df

   UniqueID Col1 Col2
0      1234    5  NaN
1      1235    3    4
2      1233  NaN    3
3      1111    3  NaN

我想知道Col1不为空且Col2为空的行数。

4 个答案:

答案 0 :(得分:5)

numbers = null;
GC.Collect();

答案 1 :(得分:2)

使用dropna

In [451]: df.dropna(axis=0,how='any',subset=['Col1']).Col2.isnull().sum()
Out[451]: 2

答案 2 :(得分:2)

我显然会选择PiRSquared's

但是,如果您希望使用query进行某些游戏,请使用

In [430]: df.query('Col1 == Col1 & Col2 != Col2').shape[0]
Out[430]: 2

答案 3 :(得分:1)

首先,在你的例子中,' nAn'不是空的。所以,让我们用np.nan替换该字符串。

df.Col1.count() # Note: `count` ignores nulls where `size`, `shape`, and `len` do not.
3

isnull

并且,使用df.Col2.isnull().sum() 2 明确地检查空值:

full = data.frame(group = c('a', 'a', 'a', 'a', 'a', 'b', 'c'), values = c(1, 2, 2, 3, 5, 3, 4), year = c(2001, 2002, 2003, 2002, 2003, 2003, 2002))
max = data.frame(group = c('a', 'b', 'c'), year = c(2002, 2003, 2002))
## my attempt: 
full = full %>% group_by(group) %>% mutate(mean = mean(values[year != max$year[match(full$group, max$group)]], na.rm = TRUE))