Я пытаюсь использовать функцию dropna в пандах. Я хотел бы использовать его для определенного столбца.удалить все строки после первого появления NaN в определенной колонке (pandas)
Я могу только выяснить, как использовать его, чтобы сбросить NaN, если ВСЕ строки имеют ВСЕ значения NaN.
У меня есть dataframe (см ниже), что я хотел бы удалить все строки после первого вхождения в качестве NaN в конкретной колонка, колонке «А»
текущий код, работает только тогда, когда все строки значениями являются NaN.
data.dropna(axis = 0, how = 'all')
data
Оригинал Dataframe
data = pd.DataFrame({"A": (1,2,3,4,5,6,7,"NaN","NaN","NaN"),"B": (1,2,3,4,5,6,7,"NaN","9","10"),"C": range(10)})
data
A B C
0 1 1 0
1 2 2 1
2 3 3 2
3 4 4 3
4 5 5 4
5 6 6 5
6 7 7 6
7 NaN NaN 7
8 NaN 9 8
9 NaN 10 9
То, что я хотел бы выход выглядеть следующим образом:
A B C
0 1 1 0
1 2 2 1
2 3 3 2
3 4 4 3
4 5 5 4
5 6 6 5
6 7 7 6
Любая помощь по этому вопросу ценится. Очевидно, что я хотел бы сделать это самым чистым способом.
Спасибо!
@MaxU почти, что зависит от индекса будучи хорошо упорядоченные Интс. Я исправил это по-другому. – piRSquared
можете ли вы пойти быстрее здесь? http://stackoverflow.com/questions/41318942/mask-out-specific-values-from-an-array – MYGz
Что случилось с loc + idxmax? Также я думаю, что вам не нужны '.values',' Series' также имеет метод 'argmax'. – ayhan