Удалите значения низкой частоты из pandas.dataframe

Как удалить значения из столбца в pandas.DataFrame , который встречается редко, т.е. с низкой частотой? Пример:

 In [4]: df[col_1].value_counts() Out[4]: 0 189096 1 110500 2 77218 3 61372 ... 2065 1 2067 1 1569 1 dtype: int64 

Итак, мой вопрос: как удалить такие значения, как 2065, 2067, 1569 и другие? И как я могу это сделать для ВСЕХ столбцов, которые содержат .value_counts() как это?

ОБНОВЛЕНИЕ: О «низком» я имею в виду такие значения, как 2065 . Это значение возникает в col_1 1 (один) раз, и я хочу удалить такие значения.

2 Solutions collect form web for “Удалите значения низкой частоты из pandas.dataframe”

Я вижу, что вы можете сделать это двумя способами.

Для всего DataFrame

Этот метод удаляет значения, которые происходят нечасто во всем DataFrame. Мы можем делать это без циклов, используя встроенные функции для ускорения работы.

 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randint(0, high=9, size=(100,2)), columns = ['A', 'B']) threshold = 10 # Anything that occurs less than this will be removed. value_counts = df.stack().value_counts() # Entire DataFrame to_remove = value_counts[value_counts <= threshold].index df.replace(to_remove, np.nan, inplace=True) 

Колонка-на-колонки

Этот метод удаляет записи, которые встречаются нечасто в каждом столбце.

 import pandas as np import numpy as np df = pd.DataFrame(np.random.randint(0, high=9, size=(100,2)), columns = ['A', 'B']) threshold = 10 # Anything that occurs less than this will be removed. for col in df.columns: value_counts = df[col].value_counts() # Specific column to_remove = value_counts[value_counts <= threshold].index df[col].replace(to_remove, np.nan, inplace=True) 

Вероятно, вы не хотите удалять всю строку в вашем DataFrame, если только один столбец имеет значения ниже вашего порогового значения, поэтому я просто удалил эти точки данных и заменил их на None .

Я value_counts каждый столбец и выполняю значение value_counts для каждого. Затем я получаю значения индекса для каждого элемента, который встречается на целевых пороговых значениях или ниже их. Наконец, я использую .loc чтобы найти эти значения элементов в столбце, а затем заменить их на None .

 df = pd.DataFrame({'A': ['a', 'b', 'b', 'c', 'c'], 'B': ['a', 'a', 'b', 'c', 'c'], 'C': ['a', 'a', 'b', 'b', 'c']}) >>> df ABC 0 aaa 1 baa 2 bbb 3 ccb 4 ccc threshold = 1 # Remove items less than or equal to threshold for col in df: vc = df[col].value_counts() vals_to_remove = vc[vc <= threshold].index.values df[col].loc[df[col].isin(vals_to_remove)] = None >>> df ABC 0 None aa 1 baa 2 b None b 3 ccb 4 cc None 
  • как получить среднее значение столбцов dataframe
  • возможно ли слияние пустых нечетких совпадений с python pandas?
  • для цикла слишком долго для создания / экспорта вывода в Python
  • Pandas - вычислить z-балл для всех столбцов
  • Как запретить выравнивание столбцов данных Pandas по субиндексу?
  • Поддерживает ли Панды ежеквартальные даты формы yyyyQp (например, 2013Q2)?
  • Функция eventprofiler QSTK не строится правильно
  • Pandon pandas: как запустить множественную одномерную регрессию по группам
  • Заполните мультииндекс Pandas DataFrame с интерполяцией
  • хранить словарь в pandas dataframe
  • возвращает n наименьших индексов по столбцу, используя pandas
  •  
    Interesting Posts for Van-Lav

    Печать временных меток (час / минута / секунда) с помощью Matplotlib

    «nosetests» не распознаются в Windows после установки и добавления в PATH

    принудительный объект будет «грязным» в sqlalchemy

    Асинхронный образ в pyqt? Или более чистый шаблон фонового вызова?

    Динамично создавать участки в Чако

    Запись CSV-файла с помощью умляутов, вызывающих «кодек UnicodeEncodeError: 'ascii', не может кодировать символ"

    Массив Numpy показывает только уникальные строки

    Django: Как установить DateField только для принятия дат «Сегодня и в будущем»

    python – как я могу перенаправить вывод unittest? Очевидное решение не работает

    Как добавить большие объемы данных в Pandas HDFStore и получить уникальный уникальный индекс?

    f.write vs print >> f

    Понимание распределения памяти для больших целых чисел в Python

    Django – сохранение объектов в сеансе

    Python – Flask – открыть веб-страницу в браузере по умолчанию

    Реализация TCP-стека Python

    Python - лучший язык программирования в мире.