Фильтр панда: Фильтры Гугла: Панда, Пингвин, Колибри и другие

Содержание

Фильтры Гугла: Панда, Пингвин, Колибри и другие

Каждый сайт — это как автомобиль, который нуждается в уходе и техническом осмотре. Если долгое время не смотреть за состоянием автомобиля, то он будет ломаться, а позже вообще выйдет из строя. То же самое касается сайта. За ним нужно смотреть и заботиться об его развитии.

Самым опасным фактором для сайтов является бездействие их владельцев, или неправильное отношение к ним.

Как правило, такие сайты попадают под фильтры поисковых систем.

Гугл изначально умеет отличать хорошие сайты от плохих. И с каждым годом это умение совершенствуется. Анализ сайтов на качество в Google осуществляется благодаря определенным фильтрам, которые оценивают сайты по своим критериям.

Основными фильтрами Гугла в настоящее время считаются Панда, Пингвин и Колибри. Также есть много других, о которых мы поговорим в конце этой статьи.

Первым толчком к размышлениям над фильтрами являются непонятные негативные вещи, которые могут происходить с нашим сайтом. Например, мы замечаем, что резко падает количество посетителей, сайт теряет позиции в поисковой выдаче.

В основном это результат действия фильтров.

Давайте подробно ознакомимся с основными фильтрами Гугла. Кстати, эти фильтры по другому еще называются алгоритмами поисковой системы.

Google Панда (Panda) – проверка на качество контента

Впервые алгоритм Панды заработал 23.02.2011 года. Многие сайты начали терять позиции. Сео эксперты проанализировав сотни сайтов, которые попали под этот фильтр пришли к выводу, что основные санкции накладываются за плохой контент и дублирование текстов.

Под некачественным контентом понимаются тексты, которые написаны не грамотно и без смысла. В основном — это длинные «простыни», которые тяжело читаются. К тому же в них часто используется выделение жирным шрифтом ключевых слов. Такие тексты переспамлены ключевыми запросами.

В далеком прошлом такие тексты давали положительный эффект. Достаточно было написать статью чем побольше и в каждом абзаце по нескольку раз прописать ключевые слова и сайт выходил в ТОП. Но Гугл понял, что это манипуляция со стороны сео специалиста и ввел наказания в алгоритме Панда.

Дублирование контента, когда один сайт пирует информацию в другого, тоже крайне негативно влияет на сайт. Копирование текстов еще называют копипастом. Многим сайтам пришлось переписывать свои статьи, чтобы выйти из-под фильтра.

Основные правила для написания правильных текстов:

  1. Писать только уникальные статьи, или рерайт не ниже 80%, идеально 100% по программе Адвего
  2. Не злоупотреблять жирным подчеркиванием (лучше ничего не подчеркивать)
  3. Достаточно одного вхождения ключевого слова в тексте (при малом эффекте анализируем вхождения в конкурентов в ТОпе)
  4. Текст должен быть содержательным и полностью раскрывать затронутую тематику
  5. Статья всегда пишется по определенному плану и содержит четкую структуру
  6. В статье присутствуют заголовки, списки, таблицы, графики и изображения.

Чтобы избавиться от алгоритмов Панды поменяйте контент на сайте. Уникализируйте статьи. Данный алгоритм обновляется каждый месяц. Но позиции, после улучшения контента, будут восстанавливаться только через несколько месяцев.

Google Пингвин (Penguin) – против плохих ссылок

Интересное название — Пингвин, получил фильтр от Гугла, который начал бороться с некачественной ссылочной массой. Начало запуска алгоритма 24 апреля 2012 год.

Данный алгоритм ведет борьбу против покупных ссылок. Особенно страдают сайты которые закупают арендные ссылки. Положение сайтов усложняется если в покупных ссылках прослеживается переспам анкоров и агресивные анкоры. Сайт теряет от 10 до 100 позиций в поиске по всем запросам.

Чтобы выйти из фильтра, необходимо проанализировать всю ссылочную массу сайта и отказаться от арендных и «плохих» ссылок. Под «плохими» ссылками мы понимаем ссылки, которые размещаются на заспамленых донорах, не тематических сайтах, различных общих каталогах и т.д. Также придется закупить хорошие трастовые ссылки.

Основные правила для наращивания ссылочной массы

  1. Покупать преимущественно вечные ссылки
  2. В анкорах проставлять на 80-90% естественные тексты и брендирование (типа: тут, подробнее, url сайта)
  3. Покупать ссылки на сайтах схожей тематики
  4. Отказываться от заспамленных доноров
  5. Давать предпочтение высоко трастовым площадкам
  6. Закупать плавно и без рывков по восходящей линии

Google Колибри (Calibri) – понимает запросы пользователей

В основном алгоритм Колибри влияет на трафик вашего сайта. Он не так страшен как два предыдущих. Но если на него не обращать внимание, то сайт сильно будет проигрывать в поведенческих факторах и таким образом терять потенциальных посетителей. Фильтр начал работать 26.09.2013 года.

Фильтр Колибри еще называют «понимающим» алгоритмом. Дело в том, что фильтр очень четко понимает логику запросов пользователя. Если пользователь вводит слова: «хочу обед в офис в киеве», то поисковик выдаст кафе и рестораны, которые предоставляют услугу доставки. Этот алгоритм специалисты Google придумали, чтобы максимально эффективно удовлетворять потребностям пользователей. Алгоритм действует по принципу дифференциации, анализируя и понимая раздробленные запросы, менее частотные и конкретные.

По отношению к данному алгоритму, наверное следует говорить не о том, как не попасть под него, а как ему понравиться.

Что нравиться Колибри:

  1. Хорошо раскрытая тематика текста
  2. Конкретика в предложениях
  3. Географические указатели местоположения, контактные данные
  4. Прямые ответы на вопросы пользователей

Другие фильтры Google

Google Sandbox (Песочница)

Накладывается на различные новые сайты, которые хорошие по качетсву, но стремительно стремяться в ТОП. Гугл замечает, что сайт качественный, но в тоже время он искусственно желает быстро попасть на первые места. Гугл притормаживает такие сайты. Единственный выход для молодого сайта — подождать полгода. После этого срока его развитие пойдет быстрее.

Google — 30

В сео существую различные методы оптимизации для влияния на ранжирование. Одни методы относятся к белым — законным, другие к черным — запрещенным. Фильтр направлен против черных методов. Например, некоторые оптимизаторы скрывают контент, ссылки, много раз прописывают ключевые запросы.

Google Duplicate Content Filter

Само название говорит, что наказывается дублирование страниц. Бывает, что владельцы сайтов леняться писать свои статьи и копируют в других сайтов. Через такие действия их сайт плохо индексируется, а страницы находятся в дополнительном поиске (supplementary results).

Google Domain name Age Filter

Алгоритм относиться к домену сайта. Чем старше сайт, тем он авторитетнее. При равных параметрах несколько сайтов преимущество получает старший домен.

Google Bombing

Страдают сайты, которые в текстах обратных ссылок пишут одинаковые слова. Например, когда на сайт идут 200 ссылок с одинаковым текстом. Это своеобразный анкорный переспам.

Google Bowling

Относиться к предыдущему фильтру. Разница только в том. Что одинаковые анкоры закупаете не вы, а ваши конкуренты. Такой вариант подавления сайтов действует в случаях, когда сайт молодой и у него низкий рейтинг.

Links.html page filter

Наказание придумано для url, которые не содержат в себе окончание html. Поисковик должен понимать, что контент размещается на html странице.

Link Farming Filter

Наказывает за регистрацию в различных сервисах ссылочного автообмена. Сюда относятся каталоги, которые за размещение просят, чтобы вы на своем сайте поставили обратную ссылку на него. Категорически отказывайтесь от таких каталогах. В настоящее время можно разместить ссылку в белом каталоге при условии, что он не захламленный.

Reciprocal Link Filter

Гугл очень внимательно смотрит, какие внешние ссылки появляются на сайтах. Если он фиксирует, что сайт покупает ссылки то налагает фильтр. Покупать ссылки реально и безопасно даже сейчас. Только делать надо правильно.

Too many links at once Filter (Слишком много ссылок сразу)

Фильтр наказывает сайты, которые в короткий промежуток времени нарастили ссылочную массу. Это так называемый «ссылочный взрыв», когда за день покупается сразу 70 ссылок. Молодым сайтам рекомендуется закупать ссылки плавно и не больше 60 — 100 в месяц.

CO-citation Linking Filter (Взаимное цитирование)

Гугл очень четко распознает и анализирует ссылочные взаимосвязи сайтов. Именно поэтому качественный ссылочный профиль является залогом успешной раскрутки. Суть фильтра в том, что если ваш сайт А ( скажем музыкальной тематики) ссылается на сайт Б, который в свою очередь ссылается на запрещенные сайты и ваш сайт А, то поисковик подумает, что ваш сайт музыкальной тематики каким то образом связан с запрещенными сайтами и понизит в выдаче. Поэтому анализируйте не только показатели донора, его исходящие и входящие ссылки.

Broken Link Filter (Присутствуют битые ссылки на сайте)

Проверить свой сайт на битые ссылки можно программой Xenu. Битая ссылка — это ссылка поставленная на другую страницу, которая не существует. Данный фильтр влияет на позиции.

Page Load Time Filter (Сайт слишком долго грузится)

Загрузка страницы в хорошо оптимизированных сайтов занимает 2-3 секунды. Если ваш сайт не вкладывается в эти рамки и страницы грузятся дольше, то потеря позиций в выдаче гарантирована.

Over Optimization Filter (Переоптимизация контента)

В первую очередь пишите тексты для людей. Если ваши тексту будут переоптимизированы ключевыми запросами, чтобы привлечь внимание роботов, то можете попасть под Бан. Главным критерием правильной оптимизации текстов является их полезность для пользователя.

Друзья, поисковые алгоритмы все время развиваются. Наилучший способ не попадать под фильтры — это делать максимально качественный и полезный контент.

Google Fred

Фильтр Фред следит за качеством контента на странице. Cео специалисты начали в последнее время продвигать сайты через реализацию больших семантических ядер, когда на похожие поисковые запросы пишутся несколько страниц. Как правило такие страницы содержат плохой контент, потому что говорят об одной теме, но другими словами.

Задача Фреда заставить владельцев сайта давать людям полезную информацию. Лучше написать одну качественную статью, которая будет отвечать на вопросы пользователя, чем десять страниц ни о чем.

Собственно, чтобы не попасть под данный фильтр следует размещать только полезную информацию, текст который поможет пользователю решить его проблему. Также добавляем различную инфографику, видео ролики, таблицы и статистику.

Посмотрите интересное видео

Дата обновления: 20.

05.2022

Автор статьи: admin

« Как успешно пройти собеседование на вакансию SEO специалиста в Киеве

Основы php. Урок №1 »

Особенности фильтров — 30, Over Optimization, Duplicate Content, Panda, Penguin

Для улучшения качества поисковой выдачи Google создал несколько десятков алгоритмов для пессимизации или полного удаления из выдачи некачественных или нерелевантных ресурсов. Под действие одного или сразу нескольких фильтров может попасть практически любой сайт или страница, в работе с которыми используются незаконные методы продвижения или не уделяется должного внимания качеству ресурса.

Фильтр -30

Фильтр применяется в отношении откровенно спамных ресурсов, а также использующих скрытые JavaScript-редиректы, дорвеи и клоакинг. В результате наложения санкций позиции сайта снижается на 30 пунктов в поисковой выдаче. Важно, что фильтр полностью не убирает сайт из поиска, а скорее намекает владельцу ресурса о недопустимости незаконных методов продвижения. Если нарушения не устранить, то сайт вовсе вылетит из поиска.

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

Фильтр Over Optimization

Под фильтр попадают веб-ресурсы с переизбытком ключевых слов и фраз в тексте страницы, тегах и метатегах. Подобные тексты поисковые боты воспринимают как написанные не для людей, а для поисковых роботов. Соответственно, веб-ресурс считается бесполезным для пользователя и на него накладывается фильтр. Вывести сайт из-под фильтра можно переписав контент и правильно его оптимизировав, удалив лишние слова и теги. Оптимальное количество ключевых слов на странице не должно превышать 5-7% от общего объема текста. Важно также, чтобы все ключевые слова были написаны лексически и грамматически правильно и органично размещались в тексте.

Фильтр Duplicate Content

Неуникальные тексты в интернете – это довольно распространенная практика, которая совершенно не устраивает пользователей, а, следовательно, и поисковую систему. Она делает сайты похожими друг на друга, не представляя пользователям всей широты информации, поэтому подобная практика строго наказывается. Индексируя страницу с неуникальным контентом Google отмечает его вторичность и сразу пессимизирует сайт в поисковой выдаче, даже несмотря на ее отличную оптимизацию. В самом плохом варианте страница полностью исчезает из поисковой выдачи.

Что можно сделать, чтобы снять фильтр?

  • Убрать с сайта неуникальный контент, заменив полностью уникальными текстами.
  • Защитить сайт от воровства контента конкурентами. Подобная практика также не редкость, когда уникальный контент с сайта может быть украден и размещен на другом ресурсе. Если он первым проходит индексацию для поисковой системы он будет первоисточником. Для этого можно запретить копирование статей с сайта или указывать напоминание о необходимости ссылки на источник материалов.

Фильтр Penguin

«Пингвин» – это один из важных комплексных фильтров, накладывающийся на ресурсы, которые поисковая система считает неестественными. Иначе говоря, созданными не для нужд реальных людей, а для поисковых ботов. Благодаря сложным алгоритмам проверки роботы быстро обнаруживают некачественные ресурсы и применяют санкции. Чаще всего Пингвин действует точечно на страницы с некачественными ссылками и не затрагивает сайт целиком.

Попасть под санкции можно за целый ряд нарушений: скрытые ссылки, переоптимизация ключевых слов в текстах, мета-тегах, анкорах, неестественный рост ссылочной массы (даже если для внешних ссылок использовались трастовые ресурсы), низкое качество ссылок вследствие размещения их на неавторитетных сайтах-донорах.

Что нужно сделать, чтобы снять санкции?

  • Переработать контент, убрав неестественные вхождения ключевых слов.
  • Развивать ссылочный профиль сайта только при помощи трастовых, схожих по тематике ресурсов.
  • Удалить дубли, битые ссылки.
  • Сделать грамотную перелинковку.

Различные манипуляции со ссылочным профилем строго наказываются поисковой системой. Попасть под санкции очень легко, а вот вывести сайт на прежние позиции сложно и требует много времени.

Фильтр Panda

Большое количество сайтов копируют материалы друг друга, усложняя работу поисковой системы. Для отслеживания некачественного контента создан фильтр Панда. Санкции накладываются на страницы-дубли, с чрезмерным вхождением ключевых слов, с неработающими или некачественными ссылками, с большим количеством рекламы на странице, неуникальными текстами. Под санкции также попадают страницы, где размещено слишком мало информации, что не позволяет полностью ответить на запрос пользователя.

Фильтр снижает позицию ресурса или отдельных страниц в поиске, новые страницы долго индексируются, что приводит к снижению трафика.

Чтобы снять действие фильтра, нужно провести качественную работу с сайтом:

  • определить и проанализировать страницы, которые попали под санкции;
  • разместить на сайте уникальный контент;
  • провести проверку и удалить некорректные и нетематические ссылки;
  • удалить все страницы-дубли;
  • улучшать поведенческие факторы;
  • убрать нетематическую рекламу и сообщения;
  • проверить корректность отображение страниц на различных устройствах;
  • устранить технические недочеты в работе сайта.

Один из самых тяжелых фильтров, избавиться от которого сложнее всего. Чтобы выйти из-под фильтра нужно тщательно проработать содержание сайта (иногда полностью удалить или заменить статьи), а даже после этого ждать снятия санкции придется долго.

Алгоритмы Google постоянно совершенствуются и становятся сложнее. Для попадания в ТОП поисковой выдачи нужно, чтобы сайт был релевантным запросу и полезным для пользователя. Вывести сайт из-под фильтра часто бывает сложным и трудозатратным процессом, который требует знаний принципов работы алгоритмов поиска и определения истинных причин снижения позиций сайта в выдаче. Более эффективной практикой является качественная работа с сайтом по продвижению законными способами. Остались вопросы? Обращайтесь к специалистам «VisualTeam».

Продолжая использовать данный сайт, Вы соглашаетесь с условиями пользовательского соглашения, выражаете своё согласие на использование cookie-файлов и на обработку своих персональных данных в соответствии с политикой в отношении обработки персональных данных на сайте visualteam. ru

10 способов фильтрации Pandas DataFrame

В этой статье мы рассмотрим различные методы фильтрации фрейма данных pandas в Python. Фильтрация данных — одна из наиболее частых операций по обработке данных. Это похоже на предложение WHERE в SQL, или вы должны были использовать фильтр в MS Excel для выбора определенных строк на основе некоторых условий. С точки зрения скорости, у python есть эффективный способ фильтрации и агрегации. У него есть отличный пакет под названием pandas для задач обработки данных. Pandas был построен поверх пакета numpy, который был написан на языке C, который является языком низкого уровня. Следовательно, манипулирование данными с использованием пакета pandas — это быстрый и умный способ обработки наборов данных большого размера.

Примеры фильтрации данных

Это один из самых начальных шагов подготовки данных для прогнозного моделирования или любого проекта отчетности. Это также называется «Подмножество данных». См. некоторые примеры фильтрации данных ниже.

  • Выберите всех активных клиентов, чьи счета были открыты после 1 января 2019 года
  • Извлечение сведений обо всех клиентах, совершивших более 3 транзакций за последние 6 месяцев
  • Получить информацию о сотрудниках, проработавших в организации более 3 лет и получивших наивысший рейтинг за последние 2 года
  • Анализ данных о жалобах и выявление клиентов, подавших более 5 жалоб за последний год
  • Извлечение подробной информации о мегаполисах, где доход на душу населения превышает 40 тысяч долларов

Импорт данных

Перед отправкой следующего кода убедитесь, что пакет pandas уже установлен. Вы можете проверить это, запустив оператор !pip show pandas в консоли Ipython. Если он не установлен, вы можете установить его с помощью команды !pip install pandas .

Мы собираемся использовать набор данных, содержащий информацию о рейсах, вылетающих из Нью-Йорка в 2013 году. Этот набор данных имеет 336776 строк и 16 столбцов. См. названия столбцов ниже. Для импорта набора данных мы используем функцию read_csv() из пакета pandas.

 ['год', 'месяц', 'день', 'dep_time', 'dep_delay', 'arr_time',
       'arr_delay', 'carrier', 'tailnum', 'рейс', 'отправление', 'пункт назначения',
       'air_time', 'расстояние', 'час', 'минута']
 
 импортировать панды как pd
df = pd.read_csv("https://raw.githubusercontent.com/JackyP/testing/master/datasets/nycflights.csv", usecols=range(1,17))
 

Фильтр данных pandas по значению столбца

Выберите информацию о рейсах JetBlue Airways с двухбуквенным кодом перевозчика B6 , отправляющимся из аэропорта JFK

Метод 1: DataFrame Way

 newdf = df[(df.origin == "JFK") & (df.carrier == "В6")]
 
 newdf.head()
Вышли[23]:
    год месяц день dep_time ... air_time расстояние час минута
3 2013 1 1 544,0 . .. 183,0 1576 5,0 44,0
8 2013 1 1 557,0 ... 140,0 944 5,0 57,0
10 2013 1 1 558,0 ... 149,0 1028 5,0 58,0
11 2013 1 1 558,0 ... 158,0 1005 5,0 58,0
15 2013 1 1 559,0 ... 44,0 187 5,0 59,0
[5 строк х 16 столбцов]
 
  1. Отфильтрованные данные (после подмножества) сохраняются в новом фрейме данных с именем newdf .
  2. Символ и относится к состоянию И , что означает соответствие обоим критериям.
  3. Эта часть кода (df.origin == "JFK") & (df.carrier == "B6") возвращает True/False. True, если условие соответствует, и False, если условие не выполняется. Позже он передается внутри df и возвращает все строки, соответствующие True . Он возвращает 4166 строк.

Метод 2: Функция запроса

В пакете pandas есть несколько способов фильтрации. Вышеупомянутый код также может быть написан как код, показанный ниже. Этот метод элегантен и более удобен для чтения, и вам не нужно каждый раз упоминать имя фрейма данных при указании столбцов (переменных).

 newdf = df.query('происхождение == "JFK" & перевозчик == "B6"')
 

Как передать переменные в функцию запроса

Метод 3: функция loc

loc является аббревиатурой местоположения термина. Все эти 3 метода возвращают один и тот же результат. Это просто разные способы фильтрации строк.

 newdf = df.loc[(df.origin == "JFK") & (df.carrier == "B6")]
 

Фильтр данных Pandas по положению строки и столбца

Предположим, вы хотите выбрать определенные строки по их положению (скажем, со второй по пятую строку). Мы можем использовать df.iloc[ ] функция для того же.

Индексация в питоне начинается с нуля. df.iloc[0:5,] относится к строке с первой по пятую (исключая здесь конечную точку 6-й строки). df.iloc[0:5,] эквивалентно df.iloc[:5,]
 df.iloc[:5,] # Первые 5 строк
df.iloc[1:5,] #Со второй по пятую строку
df. iloc[5,0] #Шестая строка и 1-й столбец
df.iloc[1:5,0] #Со второй по пятую строку, первый столбец
df.iloc[1:5,:5] #Со второй по пятую строку, первые 5 столбцов
df.iloc[2:7,1:3] #С третьей по седьмую строку, 2-й и 3-й столбцы
 

Разница между функциями loc и iloc

loc рассматривает строки на основе меток индекса. В то время как iloc рассматривает строки на основе позиции в индексе, поэтому принимает только целые числа. Давайте создадим образец данных для иллюстрации

 импортировать numpy как np
x = pd.DataFrame({"col1": np.arange(1,20,2)}, index=[9,8,7,6,0, 1, 2, 3, 4, 5])
 
 столбец 1
9 1
8 3
7 5
6 7
0 9
1 11
2 13
3 15
4 17
5 19
 

iloc — Позиция индекса

 x.iloc[0:5]
  Выход 
   столбец1
9 1
8 3
7 5
6 7
0 9
 

Выбор строк на основе индекса или позиции строки

loc — Метка индекса

 x. loc[0:5]
  Выход 
   столбец1
0 9
1 11
2 13
3 15
4 17
5 19
 

Выбор строк на основе меток индекса

Как x.loc[0:5] возвращает 6 строк (включая 5, которые являются 6-м элементом)?

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

 x = pd.DataFrame({"col1" : диапазон(1,5)}, index=['a','b','c','d'])
x.loc['a':'c'] # эквивалентно x.iloc[0:3]
   столбец1
1
Би 2
с 3
 

Фильтр данных pandas по положению строк и именам столбцов

Здесь мы выбираем первые пять строк двух столбцов с именами origin и dest.

 df.loc[df.index[0:5],["источник","назначение"]]
 

df.index возвращает метки индекса. df.index[0:5] требуется вместо 0:5 (без df.index), потому что метки индекса не всегда идут последовательно и начинаются с 0. Он может начинаться с любого числа или даже может иметь буквы алфавита. Обратитесь к примеру, где мы показали сравнение iloc и loc.

Выбор нескольких значений столбца

Предположим, вы хотите включить все сведения о рейсе, отправной точкой которого является JFK или LGA.

 # Долгий путь
newdf = df.loc[(df.origin == "JFK") | (df.origin == "LGA")]
# Умный способ
newdf = df[df.origin.isin(["JFK", "LGA"])]
 

| подразумевает условие ИЛИ, что означает, что любое из условий выполняется. isin() аналогичен оператору IN в SAS и R, который может принимать много значений и применять условие ИЛИ. Убедитесь, что вы указали значения в списке [ ].

Выберите строки, значение столбца которых не равно определенному значению

В этом примере мы удаляем все сведения о рейсе, отправляющимся из JFK. != подразумевает НЕ РАВНО.

 newdf = df.loc[(df.origin != "JFK") & (df.carrier == "B6")] 

Давайте проверим, нормально ли работает приведенная выше строка кода, просмотрев уникальные значения источника столбца в newdf.

 pd.unique(newdf.origin)
['LGA', 'EWR']
 

Как отменить все условие

Тильда ~ используется для отмены условия. Это эквивалентно оператору НЕ в SAS и R.

 newdf = df[~((df.origin == "JFK") & (df.carrier == "B6"))]
 

Выберите неотсутствующие данные в Pandas Dataframe

С помощью функции notnull() вы можете исключить или удалить значения NA и NAN. В приведенном ниже примере мы удаляем пропущенные значения из исходного столбца. Поскольку этот кадр данных не содержит пустых значений, вы найдете такое же количество строк в newdf.

 newdf = df[df.origin.notnull()]
 

Строка фильтрации в Pandas Dataframe

Обычно считается сложным обрабатывать текстовые данные. Но python упрощает работу с символьными или строковыми столбцами. Давайте подготовим поддельные данные, например.

 импортировать панд как pd
df = pd.DataFrame({"var1": ["AA_2", "B_1", "C_2", "A_2"]})
   переменная1
0 АА_2
1 Б_1
2 С_2
3 А_2
 

Выберите строки со значениями, начинающимися с буквы «А»

Используя .str , вы можете включить строковые функции и применить их к кадру данных pandas. str[0] означает первую букву.

 df[df['var1'].str[0] == 'A'] 

Фильтрация строк, длина строки которых превышает 3

len( ) Функция вычисляет длину итерируемого объекта.

 df[df['var1'].str.len()>3] 

Выберите строку, содержащую буквы A или B

contains( ) Функция аналогична оператору LIKE в SQL и SAS. Вы можете подмножество данных, упомянув шаблон в функции contains().

 df[df['var1']. str.contains('A|B')]
  Выход 
   переменная1
0 АА_2
1 Б_1
3 А_2
 

Обработка пробела в имени столбца при фильтрации

Давайте переименуем столбец var1 с пробелом между var 1 Мы можем переименовать его с помощью функции rename .

 df.rename(columns={'var1':'var 1'}, inplace = True) 

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

 newdf = df.query("`var 1` == 'AA_2'") 

Обратные кавычки поддерживаются начиная с версии 0.25 пакета pandas. Запустите эту команду в консоли, чтобы проверить версию pandas !pip show pandas Если у вас версия до версии 0.25 вы можете обновить его с помощью этой команды !pip install --upgrade pandas --user

Как фильтровать данные без использования пакета pandas

Вы можете выполнять фильтрацию, используя чистые методы Python, независимо от пакета pandas.

Предупреждение. Показанные ниже методы фильтрации неэффективны. Основная цель демонстрации следующих методов — показать, как выполнять подмножество без использования пакета pandas. В вашем реальном проекте вы должны использовать встроенные функции pandas (query(), loc[ ], iloc[ ]), которые объяснялись выше.

Нам не нужно создавать фрейм данных для хранения данных. Мы можем хранить его в структуре данных списка. lst_df содержит данные о полетах, которые были импортированы из файла CSV.

 импорт CSV
запросы на импорт
ответ = запросы.получить('https://dyurovsky.github.io/psyc201/data/lab2/nycflights.csv').текст
линии = ответ.splitlines()
d = csv.DictReader(строки)
lst_df = список (г)
 

Лямбда-метод фильтрации

Лямбда — это альтернативный способ определения определяемой пользователем функции. С помощью лямбда вы можете определить функцию в одной строке кода. Вы можете проверить это ссылка , чтобы узнать больше об этом.

 l1 = list(filter(lambda x: x["origin"] == 'JFK' и x["перевозчик"] == 'B6', lst_df))
 

Если вам интересно, как использовать эту лямбда-функцию в фрейме данных, вы можете отправить код ниже.

 newdf = df[df.apply(лямбда x: x["происхождение"] == 'JFK' и x["перевозчик"] == 'B6', ось = 1)]
 

Метод понимания списка для фильтрации

Понимание списков является альтернативой лямбда-функциям и делает код более читабельным. Подробное руководство: понимание списка

 l2 = list(x вместо x в lst_df if x["origin"] == 'JFK' and x["carrier"] == 'B6')
 

Вы можете использовать понимание списка в кадре данных, как показано ниже.

 newdf = df.iloc[[индекс для индекса, строки в df.iterrows(), если строка ['происхождение'] == 'JFK' и строка ['перевозчик'] == 'B6']]
 

Создать класс для фильтрации

Python — это объектно-ориентированный язык программирования, в котором код реализован с использованием класса 9. 0024 .

 фильтр класса:
  def __init__(я, л, запрос):
    самовывод = []
    для данных в л:
      если оценка (запрос):
        self.output.append (данные)
 
l3 = filter(lst_df, 'data["origin"] == "JFK" и data["перевозчик"] == "B6"').output
 

Pandas Filter Methods to Know

Pandas — это популярная библиотека анализа и обработки данных для Python. Основной структурой данных Pandas является DataFrame, который хранит данные в табличной форме с помеченными строками и столбцами.

8 методов фильтрации Pandas, которые нужно знать

  1. Логические операторы.
  2. Исин.
  3. Несколько логических операторов.
  4. Аксессуар стр.
  5. Тильда (~).
  6. Запрос.
  7. Самый большой и самый маленький.
  8. Лок. и лок.

Обычной операцией при анализе данных является фильтрация значений на основе условия или нескольких условий. Pandas предоставляет различные способы фильтрации точек данных (то есть строк). В этой статье мы рассмотрим восемь различных способов фильтрации DataFrame.

 

Как фильтровать Pandas DataFrame

Начнем с импорта библиотек.

 импортировать numpy как np
импортировать pandas как pd 

Давайте создадим образец DataFrame для наших примеров.

 df = pd.DataFrame({
имя':['Джейн','Джон','Эшли','Майк','Эмили','Джек','Кэтлин'],
'ctg':['A','A','C','B','B','C','B'],
'val':np.random.random(7).round(2),
'val2': np.random.randint (1,10, размер = 7)
}) 
Изображение DataFrame. | Скриншот: Soner Yildirim

Подробнее о Pandas: Руководство по сводной таблице Pandas

 

1. Логические операторы

Мы можем использовать логические операторы для значений столбцов для фильтрации строк.

 ​
дф[дф.знач > 0,5]
имя       ctg      val       val2
-------------------------------------------
1       Джон        A       0,67       1
3       Майк        B       0,91       5
4       Эмили       Б       0,99       8
6       Кэтлин       Б       1,00       3
​ 

Теперь мы выбрали строки, в которых значение в столбце «val» больше 0,5.

Функция логических операторов также работает со строками.

 f[df.name > 'Джейн']
        имя ctg val val2
-------------------------------------------
1 Джон А 0,67 1
3 Mike B 0,91 5 

Выбираются только имена, идущие после «Jane» в алфавитном порядке.

 

2. Несколько логических операторов

Pandas позволяет комбинировать несколько логических операторов. Например, мы можем применять условия как к столбцам val, так и к столбцам val2.

 df[(df.val > 0,5) & (df.val2 == 1)]
        имя ctg val val2
-------------------------------------------
1 John A 0,67 1 

Знак «&» означает «и», «|» означает «или».

 df[(df.val < 0,5) | (df.val2 == 7)]
имя      ctg      val       val2
-------------------------------------------
0       Джейн        A       0,43       1
2     Эшли       C       0,40       7
5       Джек        C       0,02       7 

 

3. Isin

Метод isin — это еще один способ применения нескольких условий для фильтрации. Например, мы можем отфильтровать имена, существующие в заданном списке.

 имени = ['Джон','Кэтлин','Майк']
df[df.name.isin(имена)]
        имя ctg val val2
-------------------------------------------
1 Джон А 0,67 1
3 Майк Б 0,91 5
6 Кэтлин Б 1,00 3
 

 

4. Метод доступа Str

Pandas — это также высокоэффективная библиотека для текстовых данных. Функции и методы в методе доступа str предоставляют гибкие способы фильтрации строк на основе строк.

Например, мы можем выбрать имена, начинающиеся с буквы «J».

 df[df.name.str.startswith('J')]
        имя ctg val val2
-------------------------------------------
0 Джейн А 0,43 1
1 Джон А 0,67 1
5 Джек С 0,02 7 

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

 df[df.name.str.contains('y')]
         имя ctg val val2
-------------------------------------------
2 Эшли К 0.40 7
4 Emily B 0,99 8 

Мы можем передать более длинный набор символов в функцию contains в зависимости от строк в данных.

 

5. Тильда (~)

Оператор тильда используется для логики «не» в фильтрации. Если мы добавим оператор тильды перед выражением фильтра, будут возвращены строки, не соответствующие условию.

 df[df.name.str.contains('y')]
         имя ctg val val2
-------------------------------------------
2 Эшли К 0.40 7
4 Emily B 0,99 8 

Получаем имена, которые не начинаются с буквы «J».

 

6. Запрос

Функция query предлагает немного больше гибкости при записи условий фильтрации. Мы можем передать условия в виде строки.

Например, следующий код возвращает строки, принадлежащие к категории B и имеющие значение выше 0,5 в столбце val.

 df.query('ctg == "B" и значение > 0,5')
        имя ctg val val2
-------------------------------------------
3 Майк Б 0,91 5
4 Эмили Б 0,99 8
6 Catlin B 1,00 3 

 

7. Самый большой или самый маленький

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

 df.nlargest(3, 'val')
        имя ctg val val2
-------------------------------------------
6 Кэтлин Б 1,00 3
4 Эмили Б 0,99 8
3 Mike B 0,91 5 

Мы также можем указать количество самых больших или самых маленьких выбираемых значений и имя столбца.

 df.nsmallest(2, 'значение2')
        имя ctg val val2
-------------------------------------------
0 Джейн А 0,43 1
1 Джон А 0,67 1 

Произошла ошибка.

Невозможно выполнить JavaScript. Попробуйте посмотреть это видео на сайте www.youtube.com или включите JavaScript, если он отключен в вашем браузере.

Учебник по фильтрации в Pandas. | Видео: Кори Шафер

Подробнее о Pandas: остерегайтесь фиктивной ловушки переменных в Pandas

8. Loc и Iloc

этикетка.

  • Loc : Выбрать строки или столбцы с помощью меток
  • Iloc : Выбрать строки или столбцы с помощью индексов

Таким образом, их можно использовать для фильтрации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *