我需要检查我的pandas.DataFrame子集的完整性。 目前我这样做:
special = df[df.kind=='special']
others = df[df.kind!='special']
special = special.dropna(how='any')
all = pd.concat([special, others])
我想知道我是否错过了任何强大的Pandas API,这使得这一切成为可能?
答案 0 :(得分:1)
我无法从我写作的地方访问Pandas,但pd.DataFrame.isnull()
会检查事物是否为空,pd.DataFrame.any()
可以逐行检查条件。
因此,如果你这样做
(df.kind != 'special') | ~df.isnull().any(axis=1)
这应该给出你想要保留的行。您可以在此表达式上使用常规索引。 有趣的是,看看这是否会加速(它会检查比你的解决方案更多的行,但可能会创建更小的DataFrame)。