2016-04-17 5 views
1

Мне нужно проверить полноту на подмножестве моих pandas.DataFrame. В настоящее время я делаю это:Используйте dropna на подмножестве для очистки

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

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

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

Я интересно, если я что-нибудь мощного панды API, который делает это возможным в одной строке не хватает?

ответ

1

У меня нет доступа к Pandas, откуда я пишу, однако pd.DataFrame.isnull() проверяет, недействительны ли вещи, и pd.DataFrame.any() может проверять условия за строкой.

Следовательно, если вы

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

это должно дать строки, которые вы хотите сохранить. Вы можете просто использовать обычное индексирование этого выражения. Было бы интересно посмотреть, не ускорит ли это все (что проверяет вещи на нескольких строках, чем ваше решение, но может создавать меньшие DataFrames).

+0

Я не думаю, что ваш ответ делает то же самое, что и мой. Я НЕ отбрасываю неполные данные для неспецифических видов. Я думаю, что у вас есть. –

+0

О, это смесь того, капля на специальных или нет, нет? Благодарю. Посмотрите, все ли в порядке. –

+0

Это может быть, спасибо! Попробуй завтра. Я думаю, что я не придумал этого, потому что я не привык думать с фильтрами ИЛИ. –

Смежные вопросы