Как удалить наблюдение из фрейма данных в python. Например, у меня есть кадр данных с переменными a, b, c в нем, и я vat для удаления наблюдения, если переменная a отсутствует, или переменная c равна нулю.Удаление наблюдений из фрейма данных в python
0
A
ответ
2
Можно построить булеву маску с помощью isnull
:
mask = (df['a'].isnull()) | (df['c'] == 0)
, а затем выбрать нужные строки с:
df = df.loc[~mask]
~mask
является булевым обратным mask
, поэтому df.loc[~mask]
выбирает строки, где a
является не имеет значения иc
не является 0.
Например,
import numpy as np
import pandas as pd
arr = np.arange(15, dtype='float').reshape(5,3) % 4
arr[arr > 2] = np.nan
df = pd.DataFrame(arr, columns=list('abc'))
# a b c
# 0 0 1 2
# 1 NaN 0 1
# 2 2 NaN 0
# 3 1 2 NaN
# 4 0 1 2
mask = (df['a'].isnull()) | (df['c'] == 0)
df = df.loc[~mask]
дает
a b c
0 0 1 2
3 1 2 NaN
4 0 1 2
+0
Спасибо, это работает –
0
Допустим, ваш DataFrame выглядит следующим образом:
In [2]: data = pd.DataFrame({
...: 'a': [1,2,3,pd.np.nan,5],
...: 'b': [3,4,pd.np.nan,5,6],
...: 'c': [0,1,2,3,4],
...: })
In [3]: data
Out[3]:
a b c
0 1 3 0
1 2 4 1
2 3 NaN 2
3 NaN 5 3
4 5 6 4
Для удаления строк с пропущенными наблюдениями, использование:
Для удаления строки, в которых только столбец «а» уже не хватает наблюдений, использование:
In [6]: data.dropna(subset=['a'])
Out[6]:
a b c
0 1 3 0
1 2 4 1
2 3 NaN 2
4 5 6 4
Для удаления строк, которые имеют либо отсутствующие наблюдения или нули, использование:
In [18]: data[data.all(axis=1)].dropna()
Out[18]:
a b c
1 2 4 1
4 5 6 4
Смежные вопросы
- 1. Удаление подстроки из фрейма данных Python
- 2. Python: удаление фрейма TKinter
- 3. удаление дубликатов единиц из фрейма данных
- 4. Удаление нескольких столбцов из фрейма данных с использованием Python
- 5. Удаление JTable из фрейма
- 6. Удаление всех экземпляров дубликата из фрейма данных
- 7. удаление символа из всего фрейма данных
- 8. Условно удаление повторяющихся строк из фрейма данных
- 9. Удаление дубликатов из фрейма данных очень быстро
- 10. Удаление дублированных строк.names из фрейма данных
- 11. Удаление определенных строк из фрейма данных
- 12. Удаление строк данных, основанных на индексе фрейма данных pandas
- 13. Удаление наблюдений с определенными номерами
- 14. Преобразование фрейма данных - Python
- 15. удаление наблюдений на основе даты
- 16. Удаление повторяющихся строк из фрейма данных в R
- 17. Удаление дублированных наблюдений в r с ограничением
- 18. na.omit удаление всех наблюдений в R
- 19. Данные подсвечивания данных из фрейма данных в Python
- 20. Python Pandas: Фильтрация фрейма данных
- 21. Python удаление выбросов из данных
- 22. Обновление/замена pandas из другого фрейма данных
- 23. Возьмите строку из одного фрейма данных и вставьте в первую строку другого фрейма данных в python
- 24. обновление фрейма данных с использованием значений другого фрейма данных - python
- 25. Удаление строк из фрейма данных, содержащего дублируемую информацию по столбцам
- 26. Удаление строк из фрейма данных Pandas на основе значений groupby
- 27. Удаление столбца из фрейма данных на основе условного
- 28. Удаление строк из фрейма данных на основе большого списка
- 29. Удаление временных рядов с нулевыми значениями из фрейма данных
- 30. Удаление строки из индексируемой по времени фрейма данных в Python/Pandas
ли 'а, б , c 'имена столбцов? – unutbu
Можете ли вы опубликовать исходные входные данные и желаемый результат, ваш вопрос непонятен – EdChum
Вы хотите отфильтровать весь столбец или строки? – EdChum