使用dropna on子集进行清理

时间:2016-04-17 07:58:39

标签: python pandas

我需要检查我的pandas.DataFrame子集的完整性。 目前我这样做:

special = df[df.kind=='special']
others = df[df.kind!='special']

special = special.dropna(how='any')

all = pd.concat([special, others])

我想知道我是否错过了任何强大的Pandas API,这使得这一切成为可能?

1 个答案:

答案 0 :(得分:1)

我无法从我写作的地方访问Pandas,但pd.DataFrame.isnull()会检查事物是否为空,pd.DataFrame.any()可以逐行检查条件。

因此,如果你这样做

(df.kind != 'special') | ~df.isnull().any(axis=1)

这应该给出你想要保留的行。您可以在此表达式上使用常规索引。 有趣的是,看看这是否会加速(它会检查比你的解决方案更多的行,但可能会创建更小的DataFrame)。