/Группировки 90 х: Банды 90-х: преступные группировки, державшие в страхе Москву

Группировки 90 х: Банды 90-х: преступные группировки, державшие в страхе Москву

Содержание

Лидер банды из 90-х рассказал, как расправлялся с ОПГ

https://ria.ru/20200823/opg-1576211118.html

Лидер банды из 90-х рассказал, как расправлялся с ОПГ

Лидер банды из 90-х рассказал, как расправлялся с ОПГ — РИА Новости, 23.08.2020

Лидер банды из 90-х рассказал, как расправлялся с ОПГ

Пожизненно осужденный основатель действовавшей в 90-х группировки из Набережных Челнов Эдуард Тагирьянов в интервью газете «Московский комсомолец» рассказал, за РИА Новости, 23.08.2020

2020-08-23T20:40

2020-08-23T20:40

2020-08-23T22:59

россия

происшествия

/html/head/meta[@name=’og:title’]/@content

/html/head/meta[@name=’og:description’]/@content

https://cdn22.img.ria.ru/images/156022/63/1560226302_0:230:3092:1969_1920x0_80_0_0_23b4ed3974207e909b40764b746b70ac.jpg

МОСКВА, 23 авг — РИА Новости. Пожизненно осужденный основатель действовавшей в 90-х группировки из Набережных Челнов Эдуард Тагирьянов в интервью газете «Московский комсомолец» рассказал, за что «наказывал» других бандитов и коммерсантов. В начале 90-х Тагирьянов открыл ателье по пошиву одежды, а через несколько лет ликеро-водочный завод. Бизнес стал давать большую прибыль, что не могло не привлечь внимание бандитов. Чтобы не делиться заработанным, предприниматель создал свою преступную группу. Собеседник издания рассказал, что никогда «ни у кого не отбирал денег».»Кому-то даешь что-то (мы ж работали), некоторые из-за трудностей не отдавали. У таких мы не отбирали. Но бывали такие, которые бахвалились тем, что взяли и не отдали», — пояснил Тагирьянов.Последних, по его словам, приходилось «наказывать».»Бывали же такие суммы! Ну, опасно, что тебе такую сумму должны. Могут же убить, чтобы не отдавать», — добавил он.По словам Тагирьянова, для расправы был «комплекс» причин. Прежде всего опасения за безопасность родных и близких.»Так что причина была не в том, что деньги не отдавали. По материалам дела у нас проходят потерпевшими семь лидеров преступных группировок. Шесть погибли, один живой», — уточнил он.Собеседник рассказал, что с подъемом его собственного бизнеса его стали «доставать» бандиты. «Столько у нас банд и групп было. В каждом районе. Три-четыре человека с обрезом — и уже банда», — добавил Тагирьянов.При этом он подчеркнул, что считает неправильным объяснять преступную деятельность непростыми временами.»Тяжелые времена периодически случаются, и не все идут грабить и убивать», — уточнил он.Тагирьянов считает, что в 90-е было невозможно вести бизнес честно, потому что он сразу привлекал внимание бандитов.»И тут вариант — либо становиться самому зубастым, либо начинать работать просто на них, а на самоуважение нужно забить. Это как жену отдать чужому человеку», — заключил собеседник.

https://ria.ru/20200817/1575891818.html

https://ria.ru/20200813/1575700777.html

россия

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2020

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og. xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

https://cdn22.img.ria.ru/images/156022/63/1560226302_108:0:2733:1969_1920x0_80_0_0_8ba601ee06210b11b71e7f5afc54c6ec.jpg

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

россия, происшествия

МОСКВА, 23 авг — РИА Новости. Пожизненно осужденный основатель действовавшей в 90-х группировки из Набережных Челнов Эдуард Тагирьянов в интервью газете «Московский комсомолец» рассказал, за что «наказывал» других бандитов и коммерсантов.

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

Собеседник издания рассказал, что никогда «ни у кого не отбирал денег».

«Кому-то даешь что-то (мы ж работали), некоторые из-за трудностей не отдавали. У таких мы не отбирали. Но бывали такие, которые бахвалились тем, что взяли и не отдали», — пояснил Тагирьянов.

Последних, по его словам, приходилось «наказывать».

«Бывали же такие суммы! Ну, опасно, что тебе такую сумму должны. Могут же убить, чтобы не отдавать», — добавил он.

17 августа 2020, 14:34

Член ОПГ десять лет скрывался от полиции благодаря пластической хирургии

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

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

Собеседник рассказал, что с подъемом его собственного бизнеса его стали «доставать» бандиты.

«Столько у нас банд и групп было. В каждом районе. Три-четыре человека с обрезом — и уже банда», — добавил Тагирьянов.

При этом он подчеркнул, что считает неправильным объяснять преступную деятельность непростыми временами.

«Тяжелые времена периодически случаются, и не все идут грабить и убивать», — уточнил он.

Тагирьянов считает, что в 90-е было невозможно вести бизнес честно, потому что он сразу привлекал внимание бандитов.

«И тут вариант — либо становиться самому зубастым, либо начинать работать просто на них, а на самоуважение нужно забить. Это как жену отдать чужому человеку», — заключил собеседник.

13 августа 2020, 08:00

Переодетую в спецназ банду не могли поймать десять лет

10 самых жестоких и богатых российских банд 90-х

Последнее десятилетие XX века в России не даром называют «лихими». Тут топ самых богатых и мощных российских банд 90-х.

Последнее десятилетие 20 века в России не даром называют «лихими 90-ми». Организованные преступные сообщества, особо не таясь, контролировали практически все сферы жизни. И стали своеобразными звездами 90-х.

Сайт «Преступная Россия» опубликовал список самых влиятельных и жестоких российских ОПГ 1990-х годов.

1. «Щелковская»

Александр Матусов

«Щелковская» ОПГ базировалась в подмосковном районе Щелково с середины 1990-х до начала 2000-х. В состав ОПГ вошли жители местного поселка Биокомбинат. «Щелковские» получили известность из-за целого ряда совершенных ими убийств. По мнению следователей, на их счету как минимум 60 смертей предпринимателей, гангстеров и собственных подельников.

Основателем группировки стал преступный «авторитет» Александр Матусов, известный по кличке «Басмач». До того как создать собственную банду, он входил в «Измайловскую» ОПГ. «Басмач» создал группировку, которая держала в страхе весь поселок – от милиционеров до чиновников. «Щелковские» были известны в криминальном мире особой жестокостью.

Люди «Басмача» предпочитали не вести переговоры, а просто устранять конкурентов. Вскоре ОПГ начала работать по просьбам заказчиков на территории всей России – убивать или брать заложников, которых жестоко пытали, требуя заплатить деньги. Как отмечали следователи, большинство жертв (независимо от того, заплатили они выкуп или нет) были убиты и закопаны на территории Щелковского района.

Видео: Сюжет «Вестей» о суде над Матусовым

Присяжные вынудили суд отпустить предполагаемого лидера ОПГ


Watch this video on YouTube

Кровавые преступления «щелковцев» стали известны правоохранительным органам только в ходе расследования дела дружественной им «кингисеппской» группировки. В 2009 году в отношении членов «щелковской» ОПГ было заведено уголовное дело, а сбежавший лидер банды «Басмач» объявлен в федеральный розыск.

Однако в 2014 году он был задержан в Таиланде и экстрадирован в Россию. Сейчас для него отбирают присяжных, чтобы судить.

2. «Слоновская» ОПГ

Вячеслав «Слон» Ермолов

Группировка возникла в Рязани в 1991 году; ее организаторами были бывшие водитель заместителя рязанского городского прокурора Николай Иванович Максимов («Макс») и таксист Вячеслав Евгеньевич Ермолов («Слон») – именно благодаря последнему банда обрела свое название. Первый капитал преступники сколотили, «крышуя» местных «наперсточников».

Вскоре группировка освоила более масштабные бизнесы: махинации с продажей автомобилей и рэкет; затем «слоны» перешли на захват целых предприятий. В короткие сроки под контролем ОПГ оказался фактически весь город.

Однако в 1993 году у «слонов» произошел конфликт с другой действовавшей в городе бандой − «айрапетовскими» (в честь лидера – Виктора Айрапетова, «Вити Рязанского»). Во время «стрелки» между главами группировок – Ермоловым и Айрапетовым – произошла драка, в ходе которой «Слон» был жестоко избит.

Это положило начало масштабной войне банд. В ответ «слоны» расстреляли клуб завода «Рязсельмаш», где отдыхали «айрапетовские». Сам «Витя Рязанский» чудом спасся – он успел спрятаться за колонной. Вскоре удар нанес Айрапетов – «Макс» был расстрелян в подъезде собственного дома. «Слоны» добрались до «Рязанского» лишь в 1995 году – он был похищен на глазах у собственной охраны, его тело нашли лишь через месяц в лесу около шоссе.

«Слоновская» ОПГ

Уже в 1996 году «слоновская» ОПГ была фактически ликвидирована. Самые влиятельные члены банды были осуждены в 2000 году, получив разные сроки лишения свободы (максимальный – 15 лет). При этом главе группировки – Вячеславу Ермолову – удалось скрыться. По некоторым данным, сейчас он проживает в Европе.

3. «Волговская» ОПГ

Дмитрий Рузляев

«Волговская» преступная группировка была создана двумя уроженцами города Тольятти, сотрудниками гостиницы «Волга» Александром Масловым и Владимиром Карапетяном. Основная деятельность банды была связана с продажей краденых деталей с местного автозавода «ВАЗ».

Постепенно ее влияние и доходы росли: в период расцвета банды, когда под контролем группировки оказались половина отгрузки автомобилей предприятия и десятки дилерских компаний, «волговские» зарабатывали свыше 400 млн долларов в год.

В 1992 году, вскоре после освобождения, был расстрелян глава банды Александр Маслов. Убийство криминального лидера произошло в ходе войны между «волговскими» и группировкой Владимира Вдовина («Напарника»). После смерти Маслова ОПГ возглавил его ближайший сподвижник – Дмитрий Рузляев по прозвищу Дима Большой, в связи с чем банду стали называть «рузляевской». Вскоре «рузляевские» заключили союз с местными группировками – «купеевской», «мокровской», «сиротенковской», «чеченской».

Как выяснилось при задержании «Димы Большого» в 1997 году, он тесно общался с некоторыми влиятельными силовиками, что в определенной степени подтверждало слухи о том, что «волговских» поддерживает местная милиция для создания противовеса ОПГ «Напарника».

24 апреля 1998 года Дмитрий Рузляев вместе с водителем и двумя телохранителями был расстрелян из четырех автоматов в собственном автомобиле. «»Диму Большого» похоронили на знаменитой «Аллее героев» Тольятти вместе с другими местными «братками»».

Уже к началу 2000-х группировка была фактически ликвидирована – большинство лидеров и киллеров банды были либо убиты, либо осуждены на большие сроки. Последний глава «волговских» Виктор Пчелин был пойман в 2007 году после того как 10 лет находился в бегах.

Могила Рузляева

В марте 2016 года сообщалось, что один из ранее пойманных активных членов банды − Владимир Воробей − был найден мертвым в больнице исправительной колонии № 9 с признаками суицида. Воробей, находившийся в розыске с 1997 года, был задержан лишь в январе 2016 года в Санкт-Петербурге, где проживал под именем Вадима Гусева.

4. «Малышевская» ОПГ

Геннадий Петров и Александр Малышев

«Малышевская» ОПГ – одна из самых влиятельных банд Санкт-Петербурга, действовавшей с конца 1980-х до середины 1990-х годов. Ее организатор – бывший борец Александр Малышев. Он начал свою криминальную карьеру, работая «наперсточником» под «крышей» «тамбовской» ОПГ. Однако уже в конце 80-х Малышев сумел собрать под своим началом банду. В 1989 году произошло первое столкновение «тамбовских» и «малышевских» с применением огнестрельного оружия, после чего группировки стали врагами.

После стычки с «тамбовскими» Малышев и другой влиятельный член банды − Геннадий Петров − были арестованы по подозрению в бандитизме, однако вскоре отпущены. Сразу после освобождения «братки» поспешили скрыться за границей: Малышев убежал в Швецию, а Петров − в Испанию.

После закрытия дела лидеры ОПГ вернулись в Петербург, где продолжили свою деятельность. Влияние «малышевских» росло вплоть до середины 90-х годов, когда их потеснили более могущественные «тамбовские».

После убийства конкурентами большинства членов банды Малышев и Петров снова скрылись за границей. Однако предприимчивые «братки» не опустили руки и продолжили развивать свою преступную сеть уже в Европе. Малышев получил гражданство Эстонии, затем жил в Германии, а оттуда переехал в Испанию, куда затем перебрался и Петров.

Как установили позднее испанские полицейские, «малышевские» начали активно создавать сложную систему отмывания нелегально нажитых денег, вложенных в недвижимость. Впоследствии именно Петров станет одним из главных фигурантов громкого дела «русской мафии в Испании», в котором кроме него упоминается ряд видных бизнесменов и политиков РФ. В 2008 году произошел массовый арест российских мафиози – были задержаны более 20 членов банды.

При этом расследование проходило очень странным образом – Петров вскоре был отпущен в родной Петербург под предлогом восстановления здоровья. Поехать обратно в Испанию он по какой-то причине не решился.

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

5. «Измайловская» ОПГ

Антон Малевский, Валерий Длугач

Возникла в Москве в середине 1980-х годов. Выросла из столичных молодежных банд, исторически противостоящих «люберам». Ее лидером стал переехавший в Москву из Казани «авторитет» Олег Иванов. Позже в руководство группировки вошли Виктор Неструев («Мальчик»), Антон Малевский («Антон Измайловский»), Сергей Трофимов («Трофим») и Александр Афанасьев («Афоня»), «вор в законе» Сергей Аксенов («Аксен»).

В состав банды входило порядка 200 человек (по другим данным от 300 до 500). При этом «измайловская» объединяла под своим крылом еще несколько группировок – в частности «гольяновскую» и «перовскую». Поэтому ОПГ часто называют «измайловско-гольяновской». Она действовала в Восточном, Юго-Восточном, Северо-Восточном и Центральном административном округах, а также в Люберецком и Балашихинском районах Московской области.

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

Один из активных членов банды − Антон Малевский в преступном мире Москвы считался наибольшим «беспредельщиком», не признающим «авторитетов». По некоторым оперативным данным, именно он виновен в убийстве «вора в законе» Валерия Длугача («Глобуса») и его сподвижника Вячеслава Баннера («Бобона»).

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

В середине 90-х конкуренты с одной стороны и правоохранители – с другой начали громить группировку. В 1994 году во время преследования милицией получил тяжелые ранения Александр Афанасьев («Афоня»). В следующем году во время покушения были убиты казначей банды Лю Чжи Кай («Миша Китаец») и Федор Карашов («Грек»). Буквально через месяц во время «разборок» погибли еще два члена банды. Кроме того, сотрудники МУРа задержали Виктора Неструева («Мальчика») и Сергея Королева («Марикело»). Антон Малевский («Антон Измайловский») сначала эмигрировал в Израиль, а в 2001-м погиб в ЮАР во время прыжка с парашютом. Наконец, в 2012-м был осужден еще один бывший член банды − Константин Маслов («Маслик»), обвиняемый в убийстве чеченского бизнесмена.

6. «Тамбовская» ОПГ

Владимир Барсуков (Кумарин)

Эта организованная группировка считалась одним из самых мощных преступных формирований, действовавших в Санкт-Петербурге в 90-х − начале 2000-х годов. «Тамбовской» ОПГ названа в честь родины ее отцов-основателей – Владимир Барсуков (до 1996 года – Кумарин) и Валерий Ледовских являются уроженцами Тамбовской области. Познакомившись в Питере, они решили организовать банду, куда «набирали» земляков и бывших спортсменов. Как и многие ОПГ, «тамбовские» начинали с охраны «наперсточников», затем перешли на рэкет.

В 1990 году Кумарин, Ледовских и многие члены их банды получили сроки за вымогательство. Выйдя на свободу, «тамбовские» снова вернулись к преступной деятельности. В это время начинается расцвет «тамбовской» ОПГ, которая стремительно увеличивается и налаживает связи с политиками и бизнесменами.

В 1993 году «тамбовцы» начали принимать участие в кровавых разборках. По некоторым данным, банда часто привлекала к решению своих вопросов выходцев из Чечни.

Участники «тамбовской» ОПГ вели деятельность в самых разных сферах – от экспорта древесины и импорта оргтехники до игорного бизнеса и проституции. С середины 1990-х они начали «отмывать» заработанный преступным путем капитал, сворачивая криминальную деятельность. Они создали ряд ЧОПов, монополизировали весь топливно-энергетический бизнес Санкт-Петербурга. К тому времени за Барсуковым закрепилась кличка «ночной губернатор Петербурга» − настолько мощным влиянием он обладал.

Галина Старовойтова

Однако в 2000-х у группировки начались проблемы, последовал ряд громких арестов. Барсуков был приговорен к 23 годам колонии строгого режима за покушение на убийство предпринимателя Сергея Васильева. В перспективе у Владимира Барсукова еще два процесса − по делу об убийстве депутата Госдумы Галины Старовойтовой, где организатор преступления − депутат Михаил Глущенко назвал его заказчиком, и об организации убийства двух соратников Григория Позднякова и Яна Гуревского в 2000 году.

7. «Уралмаш»

Константин Цыганов и Александр Хабаров

Организованное преступное сообщество возникло в городе Свердловске (ныне — Екатеринбург) в 1989 году. Первоначально «рабочей» территорией группировки считался Орджоникидзевский район города, в котором и был расположен завод-гигант «Уралмаш». Основателями считаются братья Григорий и Константин Цыгановы, в ближайшее окружение которых входили Сергей Терентьев, Александр Хабаров, Сергей Курдюмов (бригадир киллеров «Уралмаша»), Сергей Воробьев, Александр Крук, Андрей Панпурин и Игорь Маевский.

В «лучшие» годы ОПС включало в себя порядка 15 банд общей численностью около 500 человек. В первой половине 90-х «уралмашевские» слыли приверженцами жестких силовых методов (вплоть до «заказных» убийств – которых впоследствии насчитали порядка 30).

Уже очень скоро «уралмашевские» вступили в противостояние с представителями другой банды – «центровыми». Результатом стало убийство в 1991 году Григория Цыганова (его место занимает его младший брат Константин). В ответ на это в 1992 году был ликвидирован лидер «центровых» Олег Вагин. Его вместе с тремя телохранителями расстреляли из автоматов в центре города. В 1993-м − начале 1994 года убиты еще несколько лидеров и «авторитетов» конкурирующей группировки (Н. Широков, М. Кучин, О. Долгушин и др.).

Далее «Уралмаш» стал мощнейшей преступной группировкой Екатеринбурга. Ею руководил Александр Хабаров. Во второй половине 90-х группировка набирает огромный вес и начинает влиять на политическую жизнь региона. К примеру, в 1995 году «Уралмаш» помогал на выборах губернатора области Эдуарду Росселю. Год спустя, во время президентских выборов, Александр Хабаров организовал «Движение рабочих в поддержку Бориса Ельцина».

В 1999 году он официально регистрирует ОПС «Уралмаш» (расшифровывается как «общественно-политический союз»). В ноябре 2000 года при непосредственной поддержке ОПС и лично Хабарова избран глава Красноуфимска. В 2001 году депутатом Екатеринбургской городской думы становится Александр Куковякин, а в 2002 году и сам Хабаров. Все это помогало банде получить контроль над криминальными секторами экономики и, создав сеть коммерческих предприятий (от 150 до 600), постепенно легализовать свою деятельность.

Александр Хабаров

В декабре 2004 года по обвинению в принуждении к совершению сделки или отказу от ее совершения (ст. 179 УК РФ) был арестован Александр Хабаров. Через год лидер «уралмашевских» был найден повешенным в СИЗО. С тех пор «уралмашевцы» сильно утратили свое влияние, активные члены группировки по большей части стали бизнесменами или сбежали за границу. Один из лидеров − Александр Крук − был найден мертвым в 2000 году на даче другого члена банды − Андрея Панпурина в пригороде Софии (Болгария).

А Александр Куковякин в 2015 году был экстрадирован в Россию из ОАЭ и предстал перед судом по обвинению в неправомерных действиях при банкротстве и невыплате зарплаты.

8. «Солнцевская» ОПГ

Сергей Михайлов

«Солнцевская» преступная группировка возникла в конце 1980-х годов. Название одной из самых масштабных ОПГ, действовавших на территории СНГ, связано с муниципальным округом столицы Солнцево. Именно здесь объединились лица с уголовным прошлым Сергей Михайлов («Михась»), Хачидзе Джемал («воровской» куратор банды), Александр Федулов («Федул»), Арам Атаян («Барон»), Виктор Аверин («Авера-старший»), его младший брат Александр Аверин («Саша-Авера», он же «Авера-младший»). Постепенно члены ОПГ оккупировали весь Юго-Запад столицы. Под их контроль попали другие, более мелкие криминальные структуры − «ясеневские», «чертановские», «черемушкинские».

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

Среди экономических махинаций «солнцевских» – липовые сделки, которые заключала группировка с подрядчиками РЖД с помощью «дружественных» банков «Российский кредит», «Транспортный», «Западный», «Мост-банк», «Анталбанк», «Русский земельный банк», «Таурус», «Европейский экспресс», «Рублевский», «Интеркапиталбанк» (у всех отозваны в настоящее время отозваны лицензии, – прим. ред.) и пр.

Деньги «солнцевской» ОПГ были вложены в недвижимость, крупные предприятия, банки, гостиницы – всего около 30 заведений. В число подконтрольных ОПГ тогда вошли гостиницы «Рэдиссон-Славянская», «Космос», «Центральный Дом туриста», торговые ряды и палатки, Солнцевский авторынок и все вещевые рынки ЮЗАО, включая «Лужники», «Даниловский», «Киевский» и др.

Главарь «солнцевских» «Михась» сейчас активно занимается бизнесом и благотворительностью. Он был в числе первых, кто воспользовался так называемым «законом о забвении», стремясь скрыть свое криминальное прошлое.

9. «Подольская» ОПГ

Одной из самых могущественных ОПГ России 1990-х годов была банда под названием «Подольская». Ее основателем и бессменным руководителем является предприниматель из Подольска, почетный житель этого города Сергей Лалакин по кличке «Лучок». Лалакин не был судим, однако сообщалось, что он два раза становился участником хулиганских потасовок. Впрочем, дела до судов не дошли.

Окончив ПТУ, Лалакин отслужил, а уже после «срочки» в конце 1980-х годов встал на преступный путь. По информации открытых источников, он вместе с приятелями занимался рэкетом, игрой в «наперстки» и махинациями с валютой. Но все это были «цветочки», которые в будущем сделали из Лалакина криминального аса, способного подкупить целое следственное управление.

В истории «подольской» банды было немало внутренних «разборок» из-за борьбы за власть, однако всех пережил именно Лучок. Все претенденты на роль главы ОПГ со временем отошли в сторону. Под руководством «Лучка» группировка взяла под свой контроль кроме, собственно Подольска Чеховский и Серпуховской районы Московской области и большинство находящихся на этой территории коммерческих организаций, в том числе банков, нефтяных компаний и даже продюсерских фирм.

К середине 1990-х годов банда стала одной из самых организованных и богатых преступных группировок Москвы и Мособласти. По некоторым утверждениям, «Лучок» на определенном этапе превзошел самого «Сильвестра», а его мнение учитывали многие крупные фигуры, такие, как «вор в законе» «Япончик» и Отар Квантришвили.

Вплоть до середины 90-х «подольские» в кровавых боях отвоевывали себе «место под солнцем». В ходе криминальных разборок были убиты несколько десятков главарей ОПГ, среди которых − Сергей Федяев по кличке «Псих», «авторитеты» Александр Романов, он же «Роман» и Николай Соболев по кличке Соболь, руководитель «щербинской» бригады (подразделения «подольской» группировки) Валентин Ребров, «авторитет» Владимир Губкин, Геннадий Звездин («Пушка»), волгоградский «авторитет» Михаил Сологубов («Сологуб») и многие другие.

Примечательно, что у некоторых из этих преступлений были свидетели, которые указывали на Лалакина, однако ни в одном из этих дел он в качестве обвиняемого не фигурировал. Впрочем, 10 октября 1995 года Лалакин был задержан Главной военной прокуратурой России, ему предъявили обвинение по статье «мошенничество». Однако через некоторое время и это дело сошло на нет.

Боксер Александр Поветкин, Сергей Лалакин и боксер Денис Лебедев

К середине 1990-х годов криминогенная обстановка в Подольске и его окрестностях стабилизировалась. Это было время перевоплощений, когда «браткам» пришлось вылезать из неактуальных «спортивок» и облачаться во что-то более презентабельное.

Тогда «Лучок» впервые заявил о себе как об «успешном предпринимателе»: стало известно, что он вошел в совет директоров ряда компаний и стал теневым учредителем фирм «Союзконтракт» и «Анис», контролировал Центральный международный туркомплекс, фирму «Оркадо» и «Метрополь».

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

10. «Ореховская» ОПГ

Сергей Тимофеев («Сильвестр») занимается восточными единоборствами. 1979-1980 годы

Одна из самых влиятельных (если не самая влиятельная) преступная группировка 90-х годов возникла в 1986 году на юге Москвы. Она состояла из молодых людей 18-25 лет, увлекавшихся спортом и проживавших в районе Орехово-Борисово. Основателем банды стал легендарный Сергей Тимофеев, названный «Сильвестром» за любовь к культуризму и внешнее сходство с известным актером.

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

В период расцвета «ореховские» контролировали порядка тридцати банков Центрального региона, а также управляли многомиллионными бизнесами: торговлей алмазами, золотом, недвижимостью, нефтью. Жесткие методы «ореховских» не прошли даром – 13 сентября 1994 года автомобиль «Сильвестра» Mercedes-Benz 600SEC был взорван с помощью дистанционного устройства.

После смерти такого сильного лидера развернулась кровавая борьба за его место. В итоге в 1997 году, опираясь на поддержку двух других влиятельных членов банды – братьев Пылевых, власть взял один из «бригадиров» ОПГ Сергей Буторин («Ося»).

По его приказу был убит известный киллер Александр Солоник, отдыхавший на своей вилле в Греции. Исполнителем выступил не менее легендарный убийца Александр Пустовалов («Саша-Солдат»). Он, как и другой известный киллер 90-х − Алексей Шерстобитов («Леша-Солдат»), был членом «ореховской» ОПГ.

Алексей Шерстобитов

Александр Пустовалов родился в бедной московской семье. После службы в морской пехоте пытался устроиться в милицейский спецназ, однако получил отказ из-за отсутствия высшего образования. После драки в баре был принят в бойцы «ореховских». В суде над «Сашей-Солдатом» была доказана его причастность к 18 убийствам, хотя, по данным следствия, их было не менее 35.

Жертвами киллера стали Александр Биджамо (отец Георгия Беджамова и Ларисы Маркус – основателей Внешпромбанка), лидер греческой группировки Кюльбяков, адвокат «курганской» ОПГ Баранов, глава «коптевской» ОПГ Наумов и Александр Солоник. «Саша-Солдат» был пойман в 1999 году.

Следствие по его делу длилось 5 лет. На суде киллер полностью признал свою вину и раскаялся в содеянном. Окончательный срок для него составил 23 года лишения свободы. Однако со временем открываются все новые подробности деятельности Пустовалова: летом 2016 года была обнаружена причастность «Саши-Солдата» к еще шести убийствам.

Алексей Шерстобитов – потомственный военный, во время учебы задержал опасного преступника, за что был награжден орденом. На его счету 12 доказанных убийств и покушений. В банду попал после знакомства с влиятельными членами «ореховской» ОПГ − Григорием Гусятинским («Гриней») и Сергеем Ананьевским («Культиком»).

От руки «Леши-Солдата» погибли известный в криминальных кругах предприниматель Отар Квантришвили, Григорий Гусятинский (который привел Шерстобитова в банду), хозяин клуба «Доллс» Иосиф Глоцер. По словам самого киллера, он держал на прицеле даже олигарха Бориса Березовского, однако в последний момент заказ был отменен по телефону.

Долгое время следователи не верили в существование «Леши-Солдата», считая его неким собирательным образом целой банды убийц. Шерстобитов был очень осторожен: никогда не общался с рядовыми членами банд, никогда не оставлял отпечатков. Выходя «на дело», киллер мастерски маскировался.

В итоге «Солдат» был пойман лишь в 2005 году, когда явился в Боткинскую больницу, чтобы навестить своего отца. До этого отдельная группа следователей «разрабатывала» Шерстобитова в течение нескольких лет.

По совокупности преступлений киллер, признавший свою вину и согласившийся на сотрудничество со следствием, получил 23 года лишения свободы. В тюрьме «Леша-Солдат» занимается написанием автобиографических книг.

Дмитрий Белкин и Олег Пронин

Крах «ореховских» начался с убийства следователя Юрия Керезя, первого в России возбудившего дело по статье 210 УК РФ («Организация преступного сообщества»). Керезь был первым силовиком, у которого получилось выйти на след «ореховской» банды.

По некоторой информации, лидер «ореховских» Дмитрий Белкин попытался «замять» дело с помощью взятки 1 млн долларов, однако следователь отказался. Тем самым он подписал себе смертный приговор. Сотрудники МВД не простили убийство своего коллеги и бросили все силы на борьбу с ОПГ.

Сергей Буторин

За последующие 13 лет правоохранительным органам России и других стран удалось практически обезглавить «ореховскую» группировку. Были арестованы Александр Пустовалов, Сергей Буторин, Андрей и Олег Пылевы и другие. Дмитрий Белкин являлся последним крупным «ореховским» «авторитетом», который оставался на свободе и числился в международном розыске более 10 лет.

В октябре 2014 года Белкин и киллер «ореховских» Олег Пронин по прозвищу «Аль Капоне» были признаны виновными в убийствах и покушениях. Белкину назначено наказание в виде пожизненного лишения свободы с отбыванием в исправительной колонии особого режима.

Олег Пронин осужден на 24 года колонии строгого режима. Ранее за участие в банде и совершении в ее составе особо тяжких преступлений Олег Пронин уже был приговорен судом к лишению свободы сроком на 17 лет. Кроме того, «ореховские» стоят за неоднократными покушениями на депутата Одинцовского муниципального собрания Сергея Журбу.

Не пропусти…

5 мест, где Новый год можно встретить дважды за одну ночь

3 самых криминальных района Москвы лихих 90-х, и какие ОПГ их крышевали? | Ь! Ностальгия по СССР и 90-м

Москва 90-х была поделена между враждующими криминальными группировками

Москва 90-х была поделена между враждующими криминальными группировками

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

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

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

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

В нашей статье мы расскажем о 3 наиболее могущественных и влиятельных столичных ОПГ и районах, улицы которых их «вырастили».

Орехово-Борисово в 90-е

Орехово-Борисово в 90-е

1.Орехово-Борисово

Ореховская ОПГ

Район на юге Москвы вырос в 1970-е годы и застроен панельными многоэтажками несносимых серий. Именно здесь в 80-е стала формироваться одна из самых влиятельных и отмороженных ОПГ 90-х — Ореховская. К 1988 году местные молодчики 20-25 лет, в основном состоявшие из бывших спортсменов, уже патрулировали свой район и собирали дань с коммерсантов и наперсточников, позднее стали наводить порядок на всем юго-западе столицы, принялись за контрабанду, гоп-стоп фур дальнобойщиков и дурь. Во главе «Ореховских» стоял бывший сельский тракторист Сергей Тимофеев, получивший прозвище «Сильвестр» за сходство с киногероем-боксером Рокки Бальбоа, которого сыграл Сильвестр Сталлоне.

Группировка была грозой кавказцев и постоянно пыталась захватить объекты, крышуемые чеченцами и азербайджанцами. В ее активных членах было более 150 человек. По мнению оперативников, это была самая жестокая ОПГ в Москве, отрицавшая любые воровские понятия. Она контролировала рынки в районах Царицыно, Братеево, Орехово, Зябликово, Бирюлево, вдоль Каширского шоссе.

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

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

В начале 2000-х силовики окончательно разгромили ОПГ, арестовав оставшихся в живых лидеров. Суммарно сроки наказания бывших членов составили 800 лет.

По мотивам истории Ореховской группировки был снят культовый бандитский сериал Бригада.

Гостиничный комплекс в Измайлово

Гостиничный комплекс в Измайлово

2.Измайлово, Гольяново

Измайловско-гольяновская ОПГ

Измайловско-гольяновская группировка сформировалась из молодежных банд спортсменов, промышлявших на востоке Москвы в 1980-х под руководством прошедшего афган Антона Малевского. Интересно, что банду возглавляли также криминальные авторитеты с солидным стажем — Миша-Крыша и Тайванчик. Также в ее рядах было много экс-сотрудников МВД, прокуратуры и ФСБэшников.

ОПГ специализировалась на рэкете, торговле травой, разбоях и «заказах» конкурентов. Ее штаб-квартира находилась в гостинице Альфа комплекса в Измайлово, который они контролировали. Также под ними был крупнейший вещевой рынок Черкизон, антикварная барахолка «Вернисаж», Щелковский автовокзал. ОПГ дружило с соседними подмосковными Люберецкой и Балашихинской преступными группами.

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

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

Преступные деньги члены ОПГ отмывали через банки и казино, а затем вкладывали деньги в заграничную недвижимость. Впоследствии некоторые вчерашние авторитеты стали бизнесменами-миллионерами.

Авторынок в Солнцево в начале 90х

Авторынок в Солнцево в начале 90х

3.Солнцево

Солнцевская ОПГ

Солнцевская ОПГ появилась еще в 1988 году в московском замкадном районе Солнцево и насчитывала до 200 бойцов. Лидером банды считался Сергей Михайлов по кличке Михась, начинавший свой трудовой путь с официанта. Основной костяк членов составили бывшие сотрудники сферы обслуживания, отмотавшие срок за махинации, почти все были спортивного телосложения. Начинали свою криминальную деятельность братки с крышевания наперсточников, затем добавилась торговля дурью, сутенерство, игровые автоматы и контрабанда.

Постепенно «солнцевские» подмяли под себя группировки помельче — к ним примкнули Чертановская, Черёмушкинская, Ясеневская и другие банды. Одно время у группировки был даже союз с «ореховскими», а объединенную преступную команду возглавлял Сильвестр.

Солнцевские распространили своё влияние на юг и юго-запад Москвы, держа все вещевые и авторынки в этих районах, а также в Лужниках, таксистов во Внуково, Шереметьево и Киевском вокзале, контролировали гостиницы «Космос», «Центральный дом туриста», несколько казино и ночных клубов. Говорят, что с ОПГ дружил основатель первой в России сети магазинов электроники «Партия» Александр Минеев, один из наиболее успешных бизнесменов 1990-х. Радиорынок на «Горбушке» братки делили с «Измайловскими».

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

Понравилось? Поддержи нас:

👍 Ставь палец вверх, поделись статьей с друзьями в соцсетях!

☑️ Подпишись и не пропускай в ленте Дзена наши новые статьи!

Читайте также:

  • 5 самых криминальных районов Москвы

Кузя против Джеки Чана: читинские бандиты ответили за преступления 90-х | Статьи

Суд в Чите приговорил к длительным срокам заключения участников ОПГ, совершивших несколько дерзких убийств еще два десятилетия назад. Криминальные группировки, в которые входили осужденные, долгие годы держали в страхе Забайкалье. Приговоры за кровавые преступления тех лет продолжают выносить суды региона. История становления и разгрома «кузинских», «осиновских», «ключевских» и «джекичановских» — в материале «Известий».

Приговор за выслугу лет

Илья Толстиков, Павел Рогов, Александр Викулов из группировки так называемых «кузинских» и Салават Гизатулин из «джекичановских» были признаны судом виновными в совершении шести убийств. Бандитам было назначено наказание в виде 14, 12, 11 и 10 лет колонии соответственно.

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

Салават Гизатулин

Фото: gazetavechorka.ru

— Все убийства совершались в целях устранения конкурентов в коммерческой и преступной среде. Четырьмя жертвами убийств стали члены противоборствующих преступных групп, еще двое убитых — коммерсанты, — говорится в сообщении Следственного комитета. По версии обвинения, за этими преступлениями стоял основатель одной из ОПГ Андрей Кузнецов по прозвищу Кузя. Убийства совершались по его указанию.

Дело Кузнецова выделено в отдельное производство и находится на рассмотрении суда в Москве.

«Осиновское» гнездо

Группировка Кузнецова выделяется из многочисленных подобных банд 1990-х годов. Кузе удалось частично легализовать свои активы — он возглавил предприятие, которое занималось грузоперевозками на одном из столичных вокзалов. Вскоре авторитет в криминальном мире помог ему взять под контроль значительный сегмент этого бизнеса на нескольких вокзалах Москвы. Известно, что члены ОПГ использовали железнодорожные транспортные компании в криминальных целях.

По данным читинского издания «Вечорка», речь в первую очередь идет о деятельности подконтрольных Кузнецову структур на Ярославском вокзале. Утверждают, что в лучшие времена Кузнецов зарабатывал в сутки от $20 до 50 тыс., как на легальном бизнесе, так и уголовщиной. Кузнецов был задержан в 2019 году и отправился ждать суда в СИЗО Краснокаменска.

Кузнецов начинал свой криминальный путь в рядах «осиновских». Это организованное преступное сообщество, названное в честь ее основателя уголовника-рецидивиста Игоря Осинцева, считалось в Чите одним из самых старых и влиятельных, появившись еще в конце 1980-х годов. Костяк группировки составили, как тогда было принято, представители мира спорта под общим руководством уголовников. Бывший боксер Игорь Мельничук (Красный) примкнул к банде на правах второго босса.

Игорь Осинцев

Фото: zab.ru

С противниками из числа криминалитета Осинцев и Мельничук расправлялись без всяких сантиментов. К примеру, местный авторитет Сергей Сильвестров (Боцман) был расстрелян из автомата в центре Читы лично Мельничуком. Мельничук вскоре пустился в бега и попытался изменить внешность, сделав пластическую операцию. Уголовник даже попытался свести кислотой отпечатки пальцев рук, очевидно, не зная, что узор восстановится через месяц-другой.

В 2000 году против «осиновских» выступил авторитетный уголовник Виктор Свиридов (Свирид). Он заявлял серьезные претензии на звание криминального лидера Читы, но не смог противостоять старым хозяевам города. 150-килограммового бандита, тренера по греко-римской борьбе расстреляли в промзоне, а от тела избавились в лесополосе. «Осиновские» не останавливались перед ликвидацией серьезных бизнесменов и авторитетов, имевших вес в уголовной среде. В 2013 году предприниматели, задавленные вымогательствами, обратились к силовикам за помощью. Были задержаны 25 участников группировки. Активными членами «осиновских» были примерно 40 бандитов, за время существования ОПГ они убили свыше 30 человек.

Кузнецов вовремя успел обособиться от «коллег». Он сумел найти общий язык с другими криминальными структурами и создать компактную, но не менее кровожадную межрегиональную группировку. «Кузинские», в состав которых входили около 10 человек, занимались убийствами, доставали, перевозили оружие и выполняли другие функции боевого крыла преступной организации. В частности, есть версия о том, что именно эта группировка стояла за доставкой крупной партии оружия, которое могло использоваться при покушении на уголовника по кличке Джеки Чан (Сергея Ёлгина).

Ложный китаец

Одной из конкурирующих с Кузнецовым криминальных структур были «джекичановские». Группировка получила название по уголовной кличке ее лидера, авторитета Сергея Ёлгина (он занимался каратэ), контролировавшего Центральный рынок Читы. Выгодная точка стала камнем преткновения между каратистом и другим криминальным боссом — бывшим комсомольским работником «Машзавода» Константином Ключевским. В итоге потерпел поражение Ёлгин — его расстреляли на крыльце бара «Пятый угол» в 1997 году. Ответным огнем охранник Ёлгина смог убить одного из киллеров.

Годерзи Ломтадзе (Гоча Чохатаурский)

Фото: gazetavechorka.ru

Кровавая перестрелка привела к новому витку бандитских войн. Стоит отметить, что «ключевские» не остановились даже перед убийством вора в законе Гочи Чохатаурского (Годерзи Ломтадзе). Сам Ключевский погиб в ходе дальнейших криминальных разборок. В 2020 году Забайкальский краевой суд отправил оставшихся в живых гангстеров в колонию на длительные сроки за совершение 12 убийств.

Герои одного романа

Много интересного о читинских гангстерах эпохи 90-х рассказал в своих книгах бывший бандит из «осиновских» Дмитрий Ведерников (в настоящее время отбывает срок), лидер отпочковавшиеся шайки «меценатовские». До написания книги он дал подробные показания следствию о событиях многолетней давности и роли в них бывших соучастников.

Фото: gazetavechorka.ru

Первый раз его осудили в 2011 году к 10 годам колонии — тогда он заключил досудебное соглашение. В 2013 году защите удалось смягчить приговор на один год. Но уже в 2017 году Забайкальский краевой

суд вынес литератору новый срок: 22 года колонии строгого режима. В 2018 году Ведерников пожаловался журналистам, что недоволен условиями содержания, назвав ИК-6 «вежливым концлагерем».

В тайнике банды 90-х под Москвой нашли гранатометы и 36 кг взрывчатки :: Общество :: РБК

Арсенал группировки, занимавшейся похищениями, убийствами и рейдерскими захватами, включал в себя РПГ-18, армейские огнеметы «Шмель», автоматы и снайперские винтовки. Вместе с ними хранились 36 кг взрывчатки и 15 тыс. патронов

Фото: ФСБ РФ

Следственный комитет и ФСБ обнаружили тайник преступной группировки, действовавшей в Московской области с 1990-х годов, говорится в сообщении СКР. В схроне было обнаружено более 100 единиц огнестрельного оружия.

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

В список «тяжелого» вооружения банды входили гранатометы РПГ-18 «Муха», реактивные огнеметы «Шмель», две самодельные бомбы и 36 кг взрывчатки.

Video

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

Конец банды из далеких 90-х

Официальное сообщение Следственного комитета было кратким — в Калужской области семь членов преступного сообщества приговорены к длительным срокам лишения свободы «за совершение убийств и других преступлений в составе банды».

Присяжные сказали «виновны» Игорю Галанцеву, Сергею Новгородову, Игорю Семенову, Андрею Гурову, Олегу Терешину, Геннадию Баронову, Петру Турлаеву.

У всех самые страшные статьи Уголовного кодекса — «организация и участие в преступном сообществе», «бандитизм», «убийство» (6 эпизодов), «незаконный оборот оружия» (6 эпизодов), «посягательство на жизнь сотрудника правоохранительных органов», «умышленное причинение тяжкого вреда здоровью и хулиганство». Это знаменитая банда из 90-х.

Следователи СК России и их коллеги из полиции рассказывают, что группировка была «межрегиональной» и насчитывала около сотни бойцов. Руководили сообществом и входившими в него бандами Галанцев и Емельянов. Последний — в международном розыске.

Следствием, а потом и судом доказано, что с 2003 по 2007 год члены сообщества совершили шесть заказных убийств. Убивали других членов преступного мира — Солукова, Бадия, Петрова, Богданова, Магомедова в Брянской области, Радюкова в Калужской области. Мотивами расправ была борьба за власть и «сокрытие преступной деятельности».

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

Оружием пользовались не задумываясь. 4 ноября 2003 года Турлаева в Калуге остановили два сотрудника милиции и попросили предъявить документы. Турлаев вместо паспорта достал пистолет. В январе 2005 года киллер банды Радюков был расстрелян Семеновым и Новгородовым во время прогулки с женой и ребенком в Обнинске. Когда следователи разбирались с этими двумя преступлениями, выяснилось, что к ним причастны члены банды, которая сотрудничает с преступным сообществом Николая Емельянова.

Только к лету 2010 года следователь получил информацию о поименном составе Рославльской ОПГ. Спустя еще год кропотливого сбора доказательств, весной 2011 года, самые активные члены банды — Новгородов, Семенов и Галанцев — были задержаны. Турлаева и Баронова задержали чуть позже.

В 2015 году Новгородов, Семенов, Галанцев, Турлаев и Баронов были оправданы судом присяжных. Правда, потом оказалось, что на присяжных оказывалось давление. Приговор отменили. И все началось сначала.

31 июля подсудимым Галанцеву и Новгородову суд назначил пожизненный срок и штраф в 1 миллион 600 тысяч. Остальные члены банды получили очень большие сроки от 18 до 24 лет в колонии особого режима и с очень не маленькими штрафами.

В следственной группе работали следователи и сотрудники полиции из Калужской, Брянской областей, центрального аппарата МВД.

Обвинение поддержано Генеральной прокуратурой России.

Прямая речь

Сергей Старов, заместитель руководителя следственного управления СК России по Калужской области:

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

Главарь зауральской банды «лихих» 90-х Черепаха получил 23 года «строгача» за убийства и разбои » Вечерние ведомости

Курганский областной суд 29 января приговорил к длительному сроку заключения одного из лидеров преступного мира на территории Урала Станислава Черепаху. Дело было рассмотрено в особом порядке, так как обвиняемый заключил досудебное соглашение о сотрудничестве со следствием. Черепаха активно принимал участие в расследовании, выполнив все обязательства заключенного «договора». Приговор прозвучал как криминальное чтиво. Созданная им преступная группировка держала в страхе не только Шадринск и Зауралье. Банда распустила свои щупальца практически по всему УрФО. На счету ОПГ – организация серии убийств и разбоев, криминальные захваты предприятий.

«Гостей встретьте из Екатеринбурга и проводите в 411-й», – сказал пристав по рации. Через минут десять ожидания в зал ввели подсудимого – скромного мужчину в темной спортивной одежде, который выглядел моложе своих 42 лет. Защелкали камеры фотоаппаратов, к кабинке ринулись операторы. «Пока не снимаем!» – резко бросил пристав, но было поздно. Станислав Черепаха встал в выгодное для него положение – так, что он был едва доступен для камер журналистов, которым пришлось изощриться, чтобы заснять лицо главаря шадринской преступной группировки конца 90-х и начала «нулевых».

Отметим, что Станислав этапирован из колонии, где на данный момент отбывает наказание. Он был приговорен в 2003 году за убийство и самоуправство к 11 годам 6 месяцам лишения свободы. А в 2006 году – за вымогательство к 16 годам.

Как пишет газета «Коммерсант», после его ареста члены группировки стали заниматься заказными убийствами. Так, в 2010 году один из членов банды Вячеслав Прямоносов, который находится в федеральном розыске, совершил убийство имама мечети «Нур Ислама» в Новом Уренгое Исомитдина Акбарова. Машина священнослужителя была расстреляна из автомата Калашникова.

Вернемся к прошлому. История ОПГ берет свое начало с февраля 1996 года. Весной к ней примкнул Станислав Черепаха, впоследствии став одним из руководителей группировки. Всего в нее входило более десятка участников. Молодчики были вооружены до зубов и придерживались «криминальной морали» того времени – просто классика «лихих 90-х». В их оружейном арсенале имелись автоматы, боевые гранаты, пистолеты, обрезы охотничьих ружей и боеприпасы.

Вооруженная группировка занималась разбоем и бандитизмом на территории Урала. Жертвами становились как криминальные конкуренты из преступного мира и предприниматели, отказавшиеся платить им мзду за «покровительство», так и свидетели и случайные люди. Всего же оперативникам удалось доказать совершение 29 особо тяжких преступлений, среди которых 18 умышленных убийств.

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

На вчерашнем заседании, 29 января, Черепаха предстал перед Курганским областным судом по обвинению в 10 тяжких преступлениях. По трем из них судья Елена Кузнецова вынесла решение о прекращении уголовного преследования в связи с истечением срока давности.

Все три преступления были совершены в середине 90-х. В апреле 1994 года Черепаха, действуя заодно с местной бандой, ликвидировал криминального авторитета Сергея Усманова с целью установления контроля над деятельностью предпринимателей Шадринска. На улице Розы Люксембург он выпустил в него несколько пуль из самодельного пистолета с глушителем.

Не получил Черепаха наказание и за два покушения. В 1995 году во время передела в сфере криминального влияния в Шадринске осужденный принял участие в покушении на убийство еще одного лидера преступного мира, Геннадия Фомина. Его расстреляли ночью 17 февраля в больничной палате Шадринской городской больницы скорой помощи. Получив три огнестрельных ранения, Фомин выкарабкался благодаря вовремя оказанной медицинской помощи.


Несколько лет спустя Черепаха стал одним из лидеров устоявшейся преступной группировки. В январе 1998 года ОПГ поставила перед собой задачу – получить контроль над Шадринским пивоваренным заводом. Руководители банды договорились устранить мешающего им директора предприятия Шадских. Покушение сорвалось. Вооруженных участников группировки задержали практически перед исполнением убийства.

Далее судья зачитала приговор по статьям обвинения, за которые Черепахе уже светил срок.

Так, в 1997 году преступная группировка ликвидировала очередного криминального авторитета – некоего Юрченко, чтобы завладеть сферой влияния на алкогольном рынке Шадринска. Станислав передал 10 тысяч долларов США и оружие своему человеку, который собрал людей для убийства. Вечером 17 ноября в помещении частного предприятия «Центр» по улице Тюменской бандиты застрелили Юрченко.

Постепенно Черепаха с соратником перебрался в Крым, откуда они руководили бандой. Крышевание ОАО «Шадринский пивзавод» приносило им немалую выгоду, однако у них появился конкурент из своих – Юрий Горожанцев. «Коллеги» заподозрили его в «нечестности». Так, в Шадринске 25 декабря 1999 года один из участников ОПГ на улице Свердлова выстрелил в голову Горожанцева. Посчитав, что он мертв, убийца скрылся. Мужчина чудом остался жив. По некоторым источникам, через несколько лет он погиб от рук другой преступной группировки.

Потрясли слушателей и еще ряд убийств в стиле «лихих 90-х»: жестокая ликвидация свидетелей и расправы. В качестве орудия использовали «классику» – капроновые веревки.

Пожалуй, самым громким преступлением ОПГ стало убийство директора ОАО «Шадринский пивоваренный завод» Константина Бочарова, его супруги и водителя в марте 2001 года. Ликвидировав предпринимателя, бандиты пытались вернуть криминальный контроль над пивзаводом для получения части прибыли.

Подготовка к покушению шла почти полгода. За бизнесменом установили слежку. 23 марта выдался удачный момент – бандиты вычислили, что Бочаров с женой выехал в Екатеринбург. На 229-м километре трассы Екатеринбург – Курган они догнали автомобиль коммерсанта. Киллеры открыли огонь из автомата Калашникова и обреза по движущейся машине (всего, по подсчетам экспертов, они произвели не менее 25 выстрелов). Когда автомобиль остановился, они добили директора завода (он умер от травматического шока вследствие множественных огнестрельных ранений). Помимо Бочарова они расстреляли его жену и водителя как ненужных свидетелей, вопреки указаниям босса. Деньги за «работу» убийцам передала родственница Черепахи.

Судья Елена Кузнецова признала Черепаху виновным и с присоединением неотбытого наказания по предыдущему приговору назначила ему 23 года лишения свободы в колонии строгого режима.

– Сторона обвинения предложила назначить Станиславу Черепахе наказание в виде 24 лет лишения свободы, суд назначил 23 года за совершение 7 преступлений, – прокомментировал прокурор Олег Виноградов. – По трем преступлениям уголовное преследование прекращено в связи с истечением срока давности.

После приговора Станислав Черепаха разоткровенничался с журналистами. Криминальный авторитет со слезами на глазах просил прощения. Он говорил тихо, то и дело вставляя паузы в свои фразы.

– Я согласен с приговором, – спокойно сказал он, выглядывая из кабинки. – Приношу свои извинения родственникам. Буду сожалеть об этом… очень долгое время… всю оставшуюся жизнь… Я на самом деле сожалею о том, что произошло. Времена такие были… Я пытался защищаться, я пытался таким образом спасти свою жизнь за счет жизней других людей. Теперь я в этом реально раскаиваюсь. Потому что осознанно понимал, когда попал в тюрьму, что обратно не вернусь. Потому прошу простить меня родственников погибших и людей, которым я причинил боль.

Приговор в законную силу пока не вступил.

Полина Меньшова © Вечерние ведомости

Успеваемость учащихся в чтении и развитие учителей

95 Phonics Booster Bundle ™: настройка для 1–3 классов


Заказать СЕЙЧАС для отгрузки до конца июля. Доставка может занять 5-7 рабочих дней.

Наш недавно выпущенный комплект 95 Phonics Booster Bundle ™: Tune-Up был разработан, чтобы предоставить учителям четкую звуковую программу для быстрого решения проблем, связанных с потерей знаний, когда школа возобновит работу осенью.

Ориентированная на 1–3 классы, программа была создана в ответ на тревожные результаты оценки EOY, с которыми столкнулись школы из-за проблем с обучением, путем повторного введения 100% контента в нашем 95 Phonics Booster Bundle: Summer School Edition 2021 .

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

Уроки требуют минимальной подготовки учителя и могут использоваться как в классе, так и в небольших группах, лично или дистанционно.Узнайте больше о нашем комплекте Phonic Booster Bundle ™: настройка, загрузите образцы уроков и узнайте, как наш проверенный исследовательский подход может быть использован для устранения раннего дефицита грамотности и подготовки учащихся к будущему успеху в чтении.

Улучшите свой учебный план по английскому языку

Наша программа явной акустики преподается во время обучения Уровня 1 всему классу, поскольку она дополняет и заполняет пробелы, которые часто отмечаются в учебных программах ELA. Этот продукт был создан в ответ на просьбу преподавателей удовлетворить растущую потребность в подробных инструкциях по фонетике для ВСЕХ учащихся.

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

Использование федеральных фондов для решения проблемы потери грамотности Второй закон о помощи в связи с COVID предоставляет школам K-12 54 миллиарда долларов (в 4 раза больше, чем первая) и поддерживает сокращение потерь в учебе, вызванных закрытием школ.

Потеря в обучении особенно беспокоит учащихся K-3, которые, возможно, не учились так эффективно в среде удаленного обучения. Присоединяйтесь к нам, чтобы пройти короткий веб-семинар и изучить ресурсы, которые мы собрали здесь.

Практическое выполнение инструкций по вмешательству Надстройка PCK Digital Teaching Add-on предоставляет файлы анимированных презентаций, иллюстрирующих движения чипа. Используемый с нашим набором микросхем Phonics, он легко распространяет инструкции в виртуальное пространство.

Запрограммированный на HTML5 надстройка PCK Digital Teaching Add-on универсально совместима со всеми веб-браузерами и широким спектром устройств, включая ПК, Mac и Chromebook.Доступно для базовых или расширенных наборов навыков.

95 Percent Group рада предложить бесплатных вебинаров серии для преподавателей в рамках нашего пакета ресурсов в это беспрецедентное время.

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

Совершенствование практики обучения на основе фактов для повышения успеваемости по чтению

В целом, преподаватели согласны с тем, что такое умелое чтение слов и как оно выглядит.Разногласия заключаются в том, КАК помочь своим ученикам стать опытными читателями. Эти широко разрекламированные дебаты о чтении сосредоточены на том, как лучше всего научить студентов читать.

В этой видеопрезентации д-р Сьюзан Холл исследует современные взгляды на чтение слов, внимательнее рассматривает, как читают опытные читатели, и исследует научно обоснованные практики чтения, связанные с исследованиями мозга. Какая наука стоит за чтением? И как мы можем исправить «глубокое несоответствие между наукой чтения и образовательной практикой» *?

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

* Зайденберг, М. (2017). Язык со скоростью зрения. Как мы читаем, почему многие не умеют читать и что с этим делать. Основные книги, стр. 9.

sql — Использование группы по нескольким столбцам

Здесь я собираюсь объяснить не только использование предложения GROUP, но также использование функций Aggregate.

Предложение GROUP BY используется вместе с агрегатными функциями для группировки набора результатов по одному или нескольким столбцам.например:

  - GROUP BY с одним параметром:
ВЫБЕРИТЕ имя_столбца, AGGREGATE_FUNCTION (имя_столбца)
FROM table_name
WHERE column_name значение оператора
ГРУППА ПО имя_столбца;

- GROUP BY с двумя параметрами:
ВЫБРАТЬ
    column_name1,
    column_name2,
    AGGREGATE_FUNCTION (имя_столбца3)
ИЗ
    table_name
ГРУППА ПО
    column_name1,
    column_name2;
  

Запомните этот заказ:

  1. SELECT (используется для выбора данных из базы данных)

  2. FROM (раздел используется для перечисления таблиц)

  3. WHERE (предложение используется для фильтрации записей)

  4. GROUP BY (предложение может использоваться в инструкции SELECT для сбора данных по нескольким записям и сгруппируйте результаты по одному или нескольким столбцам)

  5. HAVING (предложение используется в сочетании с предложением GROUP BY для ограничить группы возвращаемых строк только теми, для которых условие ИСТИНА)

  6. ORDER BY (ключевое слово используется для сортировки набора результатов)

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

Агрегатные функции:

MIN () возвращает наименьшее значение в заданном столбце

MAX () возвращает максимальное значение в данном столбце.

SUM () возвращает сумму числовых значений в данном столбце

AVG () возвращает среднее значение данного столбца

COUNT () возвращает общее количество значений в данном столбце

COUNT (*) возвращает количество строк в таблице

Примеры сценариев SQL об использовании агрегатных функций:

Допустим, нам нужно найти заказы на продажу, общая сумма продажи которых превышает 950 долларов.Мы объединяем предложение HAVING и предложение GROUP BY , чтобы добиться этого:

  ВЫБРАТЬ
    orderId, SUM (unitPrice * qty) Итого
ИЗ
    Информация для заказа
ГРУППА ПО orderId
ИМЕЕТ Всего> 950;
  

Подсчет всех заказов и их группировка по идентификатору клиента и сортировка результата по возрастанию. Мы объединяем функцию COUNT и предложения GROUP BY , ORDER BY и ASC :

  ВЫБРАТЬ
    customerId, COUNT (*)
ИЗ
    Заказы
ГРУППА ПО customerId
ЗАКАЗАТЬ ПО СЧЕТЧИКУ (*) ASC;
  

Получите категорию, средняя цена за единицу которой превышает 10 долларов США, используя функцию AVG в сочетании с предложениями GROUP BY и HAVING :

  ВЫБРАТЬ
    categoryName, AVG (unitPrice)
ИЗ
    Продукция p
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Категории c ON c.categoryId = p.categoryId
ГРУППА ПО категории Название
ИМЕТЬ СРЕДНЕЕ (unitPrice)> 10;
  

Получение менее дорогого продукта по каждой категории с помощью функции MIN в подзапросе:

  ВЫБРАТЬ categoryId,
       идантификационный номер продукта,
       наименование товара,
       Цена за единицу
ИЗ ПРОДУКТОВ p1
ГДЕ unitPrice = (
                ВЫБЕРИТЕ МИН (unitPrice)
                ИЗ Продукты p2
                ГДЕ p2.categoryId = p1.categoryId)
  

Следующий оператор группирует строки с одинаковыми значениями в столбцах categoryId и productId :

  ВЫБРАТЬ
    categoryId, categoryName, productId, SUM (unitPrice)
ИЗ
    Продукция p
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
    Категории c ON c.categoryId = p.categoryId
ГРУППА ПО categoryId, productId
  

Полное руководство по группировке и агрегированию с помощью Pandas

Введение

Одна из основных функций анализа — группировка и агрегирование данных. В некоторых случаях, этого уровня анализа может быть достаточно, чтобы ответить на вопросы бизнеса. В других случаях эта деятельность может стать первым шагом в более сложном анализе науки о данных. В пандах группа функция может быть объединена с одним или несколькими агрегациями функции для быстрого и простого обобщения данных.Эта концепция обманчиво проста и нова. Пользователи pandas поймут эту концепцию. Однако они могут быть удивлены, насколько полезен комплекс Функции агрегирования могут использоваться для поддержки сложного анализа.

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

Агрегирование

В контексте этой статьи функция агрегирования — это функция, которая принимает несколько отдельных values ​​и возвращает сводку.В большинстве случаев эта сводка представляет собой одно значение.

Наиболее распространенные функции агрегирования — это простое среднее или суммирование значений. По состоянию на pandas 0.20, вы можете вызвать функцию агрегирования для одного или нескольких столбцов DataFrame.

Вот быстрый пример расчета общей и средней стоимости проезда с использованием набора данных Titanic. (загружено с морского порта):

 импортировать панд как pd
импортировать seaborn как sns

df = sns.load_dataset ('титаник')

df ['тариф']. agg (['сумма', 'среднее'])
 
сумма 28693.949300
среднее 32.204208
Имя: тариф, тип d: float64
 

Эта простая концепция — необходимый строительный блок для более сложного анализа.

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

Что, если вы хотите выполнить анализ только подмножества столбцов? Есть еще два варианты агрегирования: использование словаря или именованное агрегирование.

Вот сравнение трех вариантов:

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

Выбор метода агрегирования

Как правило, я предпочитаю использовать словари для агрегирования.

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

Группа по

Теперь, когда мы знаем, как использовать агрегаты, мы можем комбинировать это с группа Обобщить данные.

Базовая математика

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

Мы можем применить все эти функции к тариф при группировке по embark_town :

 agg_func_math = {
    'плата за проезд':
    ['sum', 'mean', 'median', 'min', 'max', 'std', 'var', 'mad', 'prod']
}
df.groupby (['embark_town']). agg (agg_func_math) .round (2)
 

Это все относительно простая математика.

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

Еще один полезный ярлык — использовать описать для запуска нескольких встроенных агрегатов единовременно:

 agg_func_describe = {'тариф': ['описать']}
df.groupby (['embark_town']). agg (agg_func_describe) .round (2)
 

Подсчет

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

 agg_func_count = {'embark_town': ['count', 'nunique', 'size']}
df.groupby (['колода']). agg (agg_func_count)
 

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

Первый и последний

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

 agg_func_selection = {'тариф': ['первый', 'последний']}
df.sort_values ​​(by = ['тариф'],
            ascending = False) .groupby (['embark_town'
                                        ]). agg (agg_func_selection)
 

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

Другой подход к выбору — использовать idxmax и idxmin выбрать значение индекса что соответствует максимальному или минимальному значению.

 agg_func_max_min = {'тариф': ['idxmax', 'idxmin']}
df.groupby (['embark_town']). agg (agg_func_max_min)
 

Можем проверить результаты:

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

 df.loc [df.groupby ('класс') ['тариф »]. idxmax ()]
 

Приведенный выше пример — одно из тех мест, где агрегация на основе списка является полезным ярлыком.

Другие библиотеки

Вы не ограничены функциями агрегирования в пандах. Например, вы можете использовать stats из scipy или numpy.

Вот пример расчета режима и перекоса данных о стоимости проезда.

 из scipy.stats import skew, mode
ag_func_stats = {'тариф': [перекос, режим, pd.Series.mode]}
df.groupby (['embark_town']). agg (agg_func_stats)
 

Интересны результаты режима. Функция режима scipy.stats возвращает наиболее частое значение, а также количество появлений. Если вы просто хотите как можно больше частое значение, используйте pd.Series.mode.

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

Работа с текстом

При работе с текстом функции подсчета будут работать должным образом.Вы также можете использовать Функция режима scipy для текстовых данных.

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

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

 agg_func_text = {'колода': ['уникальный', режим, набор]}
df.groupby (['класс']). agg (agg_func_text)
 

Пользовательские функции

Стандартные функции агрегирования pandas и встроенные функции из экосистемы Python удовлетворит многие ваши потребности в анализе.Однако вы, вероятно, захотите создать свой собственный настраиваемые функции агрегирования. Есть четыре метода создания ваших собственных функций.

Чтобы проиллюстрировать различия, давайте вычислим 25-й процентиль данных, используя четыре подхода:

Во-первых, мы можем использовать частичную функцию:

 из functools import partial
# Использовать частичное
q_25 = частичное (pd.Series.quantile, q = 0,25)
q_25 .__ name__ = '25% '
 

Затем мы определяем нашу собственную функцию (которая представляет собой небольшую оболочку около квантиль ):

 # Определить функцию
def percentile_25 (x):
    вернуть x.квантиль (0,25)
 

Мы можем определить лямбда-функцию и дать ей имя:

 # Определить лямбда-функцию
lambda_25 = лямбда x: x. квантиль (0,25)
лямбда_25 .__ имя__ = 'лямбда_25%'
 

Или определите встроенную лямбду:

 # Использовать встроенную лямбда-функцию
ag_func = {
    'тариф': [q_25, percentile_25, lambda_25, lambda x: x.quantile (.25)]
}

df.groupby (['embark_town']). agg (agg_func) .round (2)
 

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

Выбор стиля пользовательской функции

Я предпочитаю использовать собственные функции или встроенные лямбды.

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

Примеры пользовательских функций

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

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

Если вы хотите подсчитать количество нулевых значений, вы можете использовать эту функцию:

 def count_nulls (s):
    вернуть s.size - s.count ()
 

Если вы хотите включить NaN значения в ваших уникальных счетчиках, вам необходимо передать dropna = Ложь к уникальный функция.

 def unique_nan (s):
    return s.nunique (dropna = False)
 

Вот сводка всех значений вместе:

 agg_func_custom_count = {
    'embark_town': ['count', 'nunique', 'size', unique_nan, count_nulls, set]
}
df.groupby (['колода']). agg (agg_func_custom_count)
 

Если вы хотите рассчитать 90-й процентиль, используйте квантиль :

 def percentile_90 (x):
    вернуть x.quantile (.9)
 

Если вы хотите вычислить усеченное среднее, из которого исключен самый низкий 10-й процент, используйте функция scipy stats trim_mean :

 def trim_mean_10 (x):
    вернуть trim_mean (x, 0.1)
 

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

 def наибольший (x):
    вернуть x.nlargest (1)
 

Это эквивалент макс но я покажу другой пример n наибольший ниже чтобы подчеркнуть разницу.

Я уже писал о спарклайнах. Обратитесь к этой статье за ​​инструкциями по установке. Вот как включить их в агрегатную функцию для уникального представления данных:

 def sparkline_str (x):
    бины = np.гистограмма (x) [0]
    sl = '' .join (спарклайны (бины))
    вернуть сл
 

Вот они все вместе:

 agg_func_largest = {
    'тариф': [percentile_90, trim_mean_10, large, sparkline_str]
}
df.groupby (['класс', 'embark_town']). agg (agg_func_largest)
 

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

 def top_10_sum (x):
    вернуть x.nlargest (10). сумма ()

def bottom_10_sum (x):
    вернуть x.nsmallest (10) .sum ()


ag_func_top_bottom_sum = {
    'тариф': [верхняя_10_сумма, нижняя_10_сумма]
}
df.groupby ('класс'). agg (agg_func_top_bottom_sum)
 

Использование этого подхода может быть полезно при применении принципа Парето к вашим собственным данным.

Пользовательские функции с несколькими столбцами

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

Используя этот метод, вы получите доступ ко всем столбцам данных и сможете выбрать соответствующий подход агрегации для создания итогового DataFrame (включая метки столбцов):

Сводка по
 def (x):
    result = {
        'fare_sum': x ['fare']. sum (),
        'fare_mean': x ['тариф']. mean (),
        'диапазон_платы': x ['тариф']. max () - x ['тариф »]. min ()
    }
    вернуть pd.Series (результат) .round (0)

df.groupby (['класс']). применить (сводка)
 

Использование применить с поклонница дает максимальную гибкость во всех аспектах результаты.Однако есть и обратная сторона. Модель применить функция медленная, поэтому этот подход следует использовать экономно.

Работа с групповыми объектами

После группировки и агрегирования данных вы можете выполнять дополнительные вычисления с сгруппированными объектами.

Для первого примера мы можем выяснить, какой процент от общего количества проданных билетов можно отнести к каждому embark_town и класс комбинация. Мы используем присвоить и лямбда функция добавления pct_total столбец:

 df.groupby (['embark_town', 'class']). agg ({
    'тариф': 'сумма'
}). assign (pct_total = lambda x: x / x.sum ())
 

Следует иметь в виду, что вы можете сделать это проще, используя pd.crosstab как описано в моей предыдущей статье:

 pd.crosstab (df ['embark_town'],
            df ['класс'],
            values ​​= df ['тариф'],
            agfunc = 'сумма',
            normalize = True)
 

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

Вот быстрый пример:

 pd.pivot_table (data = df,
            index = ['embark_town'],
            columns = ['класс'],
            agfunc = agg_func_top_bottom_sum)
 

Иногда вам нужно будет сделать несколько групп, чтобы ответить на ваш вопрос. Например, если мы хотим увидеть общую сумму тарифов, мы можем сгруппировать и объединить их по городам и class затем сгруппируйте полученный объект и вычислите кумулятивную сумму:

 fare_group = df.groupby (['embark_town', 'класс']).agg ({'тариф': 'сумма'})
fare_group.groupby (уровень = 0) .cumsum ()
 

Это может быть немного сложно понять. Вот краткое описание того, что мы делаем:

Вот еще один пример, в котором мы хотим суммировать ежедневные данные о продажах и преобразовать их в совокупный дневной и ежеквартальный просмотр. Обратитесь к статье Grouper, если вы не знакомы с используя pd.Grouper () :

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

Продажи
 = pd.read_excel ('https://github.com/chris1610/pbpython/blob/master/data/2018_Sales_Total_v2.xlsx?raw=True')

daily_sales = sales.groupby ([pd.Grouper (key = 'date', freq = 'D')
                            ]). agg (daily_sales = ('внешняя цена',
                                                'сумма')). reset_index ()
daily_sales ['четверть_продаж'] = daily_sales.groupby (
    pd.Grouper (key = 'date', freq = 'Q')). agg ({'daily_sales': 'cumsum'})
 

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

Если вы хотите просто получить совокупный квартальный итог, вы можете объединить несколько функций groupby в цепочку.

Сначала сгруппируйте ежедневные результаты, затем сгруппируйте эти результаты по кварталам и используйте кумулятивную сумму:

 sales.groupby ([pd.Grouper (key = 'date', freq = 'D')
            ]). agg (daily_sales = ('ext price', 'sum')). groupby (
                pd.Grouper (freq = 'Q')). agg ({
                    'daily_sales': 'cumsum'
                }). rename (columns = {'daily_sales': 'квартальные_продажи'})
 

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

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

Сглаживание иерархических индексов столбцов

По умолчанию pandas создает иерархический индекс столбца в сводном DataFrame.Вот что я имею в виду:

 df.groupby (['embark_town', 'class']). Agg ({'fare': ['sum', 'mean']}). Round (0)
 

В какой-то момент в процессе анализа вы, вероятно, захотите «сгладить» столбцы, чтобы они представляет собой один ряд имен.

Я обнаружил, что мне лучше всего подходит следующий подход. Я использую параметр as_index = Ложь при группировке создайте новое имя свернутого столбца.

Вот код:

 multi_df = df.groupby (['embark_town', 'класс'],
                    as_index = False) .agg ({'тариф': ['сумма', 'среднее']})

multi_df.columns = [
'_'. join (col) .rstrip ('_') для столбца в multi_df.columns.values
]
 

Вот изображение, показывающее, как выглядит сплющенная рамка:

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

Промежуточные итоги

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

 импортный столик
df.groupby (['класс', 'embark_town', 'секс']). agg ({'тариф': 'сумма'}). stb.subtotal ()
 
Дополнительная таблица

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

Сводка

Спасибо, что прочитали эту статью. Здесь много деталей, но это связано с тем, как существует множество различных применений для группировки и агрегирования данных с помощью pandas. Моя надежда что этот пост станет полезным ресурсом, который вы можете добавить в закладки и вернуться к нему, когда застрять на собственной сложной проблеме.

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

Изображение предоставлено: Герман Трауб

ggpubr: Сюжеты для публикации — Статьи

Таблица леденцов
Диаграмма

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

Таблица Lollipop, раскрашенная группирующей переменной «cyl»:

  ggdotchart (dfm, x = "name", y = "mpg",
           color = "cyl", # Цвет по группам
           palette = c ("# 00AFBB", "# E7B800", "# FC4E07"), # Пользовательская палитра цветов
           sorting = "ascending", # Сортировать значение по убыванию
           add = "gments ", # Добавить сегменты от y = 0 к точкам
           ggtheme = theme_pubr () # тема ggplot2
           )  

  • Сортировать по убыванию. sorting = «по убыванию» .
  • Поверните график по вертикали, используя rotate = TRUE .
  • Отсортируйте значение миль на галлон внутри каждой группы, используя group = «cyl» .
  • Установить размер точек на 6.
  • Добавьте значения миль на галлон в качестве метки. label = «миль на галлон» или label = round (dfm $ mpg) .
  ggdotchart (dfm, x = "name", y = "mpg",
           color = "cyl", # Цвет по группам
           palette = c ("# 00AFBB", "# E7B800", "# FC4E07"), # Пользовательская палитра цветов
           sorting = "по убыванию", # Сортировать значение по убыванию
           add = "gments ", # Добавить сегменты от y = 0 к точкам
           rotate = TRUE, # Повернуть по вертикали
           group = "cyl", # Сортировать по группам
           точка.size = 6, # Большой размер точки
           label = round (dfm $ mpg), # Добавить значения миль на галлон как метки с точками
           font.label = list (color = "white", size = 9,
                             vjust = 0.5), # Настроить параметры метки
           ggtheme = theme_pubr () # тема ggplot2
           )  

График отклонения:

  • Используйте y = «mpg_z»
  • Изменить цвет и размер сегмента: добавить.params = list (color = «lightgray», size = 2)
  ggdotchart (dfm, x = "name", y = "mpg_z",
           color = "cyl", # Цвет по группам
           palette = c ("# 00AFBB", "# E7B800", "# FC4E07"), # Пользовательская палитра цветов
           sorting = "по убыванию", # Сортировать значение по убыванию
           add = "gments ", # Добавить сегменты от y = 0 к точкам
           add.params = list (color = "lightgray", size = 2), # Изменить цвет и размер сегмента
           group = "cyl", # Сортировать по группам
           точка.size = 6, # Большой размер точки
           label = round (dfm $ mpg_z, 1), # Добавить значения миль на галлон как метки с точками
           font.label = list (color = "white", size = 9,
                             vjust = 0.5), # Настроить параметры метки
           ggtheme = theme_pubr () # тема ggplot2
           ) +
  geom_hline (yintercept = 0, linetype = 2, color = "lightgray")  

Точечная диаграмма Кливленда

Цветной текст по группам.Используйте y.text.col = TRUE.

  ggdotchart (dfm, x = "name", y = "mpg",
           color = "cyl", # Цвет по группам
           palette = c ("# 00AFBB", "# E7B800", "# FC4E07"), # Пользовательская палитра цветов
           sorting = "по убыванию", # Сортировать значение по убыванию
           rotate = TRUE, # Повернуть по вертикали
           dot.size = 2, # Большой размер точки
           y.text.col = TRUE, # Цвет текста y по группам
           ggtheme = theme_pubr () # тема ggplot2
           ) +
  theme_cleveland () # Добавить пунктирную сетку  

Как создать группы контента

Группы контента и Google Analytics 4 : Я боролся с этим, и мне, наконец, удалось это понять! Поскольку он вышел из бета-версии, в отчете Вовлеченность> Страницы и Экраны , если вы откроете раскрывающееся меню, вы увидите, что последний элемент содержит метку «Группа контента», как показано на снимке экрана. ниже.

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

Я думаю, что я пробовал несколькими возможными способами — даже весьма творческими и неортодоксальными — , чтобы изменить (не установленное) значение на реальное : к сожалению, все еще возвращено (не установлено).

На самом деле, на данный момент нет официального руководства или каких-либо подсказок по функции GA4, но, в конце концов, я преуспел, и это правда, что часто решение является самым простым!

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

Что такое группы содержимого

Для тех, кто с ними не знаком, группы контента — это группы контента (да, ладно, я могу представить…). Они очень полезны, когда вам нужно проанализировать агрегированные показатели по категориям. В качестве примера, если мы думаем об электронной коммерции, продающей спортивные товары (например, Adidas, Nike и т. Д.), Мы могли бы создать группы контента, посвященные мужчинам (все страницы / контент, относящиеся к категории), футбольной обуви (все содержимое / страницы, относящиеся к футбольные бутсы), кроссовки и т. д.

Вы можете сгруппировать похожее содержимое в категории макросов, которые вы можете анализировать и сравнивать (например, раздел «Мужчина» или «Женщина» генерирует больше всего событий?).

Как создать группы контента в GA4

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

Давайте сделаем несколько шагов:

  • Откройте или создайте файл конфигурации GA4 в Диспетчере тегов Google.
  • Внутри элемента «Поля для установки» назначьте «content_group» в качестве параметра и контент, который вы хотите связать, как значение . Очевидно, что содержимое, заданное в качестве параметра, основано на просмотрах страниц, поэтому обязательно будет динамическим. Поэтому я предлагаю вам создать либо таблицу поиска регулярных выражений в GTM, в которой вы передаете {{Путь к странице}} как переменную, либо инициируете пользовательское событие с категорией pageCategory, которое всегда будет передаваться как переменная. В нашем случае я предпочел использовать первое решение, поскольку URL-адреса сайта имеют четко определенную структуру.
  • Теперь вам просто нужно активировать на всех страницах вашего сайта.
  • Добавьте content_group в специальные параметры вашего Google Analytics 4, иначе вы ничего не увидите в отчетах!

Проверьте группы контента в GA4

Очевидно, что перед публикацией контейнера запустите тест в режиме отладки. Затем проверяет внутри события «page_view», что параметр «content_group» сообщается вместе со связанным значением .

В этом примере я посетил контент, посвященный оптимизации, и параметр content_group оценивается с помощью Optimize.

Примерно через 24 часа с момента установки content_group внутри отчета вы можете начать поиск первых данных.

Ограничения группы контента в GA4

В результате проведенных нами испытаний были выявлены следующие ограничения:

  • Группа контента GA4 активируется в специальном отчете, только если связана с событием page_view .Если связан с другим событием, параметр устанавливается, но отчет остается (не установлен)
  • Мы не обнаружили ограничения на количество группировок , которые вы можете настроить, как в Universal Analytics (по умолчанию 5)
  • Мы пытались использовать другие параметры, такие как «content_group_2» или «content_group2» и т. Д., Но мы не обнаружили никакой иерархии.
  • Параметр доступен в BigQuery

Теперь вам просто нужно установить content_groups и начать анализ !!

Ваше руководство по группировке данных в Python — Real Python

Независимо от того, начали ли вы работать с Pandas и хотите освоить одно из его основных средств, или вы хотите заполнить некоторые пробелы в своем понимании .groupby () , это руководство поможет вам разобрать и визуализировать операцию Pandas GroupBy от начала до конца.

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

В этом руководстве вы рассмотрите:

  • Как использовать Pandas GroupBy для операций с реальными данными
  • Как работает цепочка операций разделить-применить-комбайн
  • Как разложить цепочку разделить-применить-объединить на шаги
  • Как методы объекта Pandas GroupBy могут быть помещены в разные категории в зависимости от их назначения и результата

В этом руководстве предполагается, что у вас есть некоторый опыт работы с самими Pandas, включая то, как читать файлы CSV в память как объекты Pandas с помощью read_csv () .Если вам нужно освежиться, ознакомьтесь с разделом «Чтение CSV с помощью Pandas и Pandas: как читать и писать файлы».

Вы можете загрузить исходный код для всех примеров в этом руководстве, щелкнув ссылку ниже:

Уборка

Весь код в этом руководстве был сгенерирован в оболочке CPython 3.7.2 с использованием Pandas 0.25.0. Прежде чем продолжить, убедитесь, что у вас есть последняя версия Pandas, доступная в новой виртуальной среде:

  $ python -m venv pandas-gb-tut
$ source./ pandas-gb-tut / bin / активировать
$ python -m pip установить панды
  

В приведенных здесь примерах также используются несколько измененных параметров Pandas для более удобного вывода:

  импортировать панд как pd

# Использовать 3 десятичных знака при отображении вывода
pd.set_option ("display.precision", 3)

# Не переносите repr (DataFrame) в дополнительные строки
pd.set_option ("display.expand_frame_repr", ложь)

# Установить максимальное количество строк, отображаемых на выходе, равным 25
pd.set_option ("display.max_rows", 25)
  

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

В этом руководстве вы сосредоточитесь на трех наборах данных:

  1. Набор данных Конгресса США содержит общедоступную информацию об исторических членах Конгресса и иллюстрирует несколько фундаментальных возможностей .groupby () .
  2. Набор данных о качестве воздуха содержит периодические показания датчика газа. Это позволит вам работать с данными с плавающей запятой и временными рядами.
  3. Набор данных агрегатора новостей, который содержит метаданные нескольких сотен тысяч новостных статей. Вы будете работать со строками и группировать текст.

Вы можете загрузить исходный код всех примеров в этом руководстве, щелкнув ссылку ниже:

После того, как вы загрузили .zip , вы можете распаковать его в свой текущий каталог:

  $ unzip -q -d groupby-data groupby-data.zip
  

Параметр -d позволяет извлечь содержимое в новую папку:

  ./
│
└── groupby-data /
    │
    ├── законодатели-исторические.csv
    ├── airqual.csv
    └── новости.csv
  

После настройки вы готовы приступить к делу!

Пример 1: Набор данных Конгресса США

Вы сразу же приступите к делу, проанализировав набор данных об исторических членах Конгресса. Вы можете прочитать файл CSV в Pandas DataFrame с помощью read_csv () :

  импортировать панд как pd

dtypes = {
    "first_name": "категория",
    "пол": "категория",
    "тип": "категория",
    "состояние": "категория",
    "party": "категория",
}
df = pd.read_csv (
    "groupby-data / законодатели-исторические.csv",
    dtype = dtypes,
    usecols = list (dtypes) + ["день рождения", "last_name"],
    parse_dates = ["день рождения"]
)
  

Набор данных содержит имена и фамилии членов, дату рождения, пол, тип ( "rep" для Палаты представителей или "sen" для Сената), штат США и политическую партию. Вы можете использовать df.tail () для сравнения последних нескольких строк набора данных:

>>>
  >>> df.хвост()
      last_name first_name день рождения пол тип государство вечеринка
11970 Гаррет Томас 1972-03-27 Член, Вирджиния, республиканец
11971 Гендель Карен 1962-04-18 Представитель ГА, республиканец
11972 Джонс Бренда 1959-10-24 Представитель Мичиган, демократ
11973 Марино Том 1952-08-15 Депутат ПА, республиканец
11974 Джонс Уолтер 1943-02-10 Представитель Северной Каролины республиканец
  

DataFrame использует категориальные dtypes для экономии места:

>>>
  >>> df.dtypes
объект last_name
категория first_name
день рождения datetime64 [нс]
гендерная категория
тип категория
государственная категория
категория партии
dtype: объект
  

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

«Привет, мир!» группы PandasОт

Теперь, когда вы знакомы с набором данных, вы начнете с «Hello, World!» для операции Pandas GroupBy.Каково количество членов Конгресса от штата к штату за всю историю набора данных? В SQL вы можете найти этот ответ с помощью оператора SELECT :

  Состояние ВЫБРАТЬ, количество (имя)
ИЗ df
ГРУППА ПО состоянию
ЗАКАЗАТЬ ПО состоянию;
  

Вот почти эквивалент в пандах:

>>>
  >>> n_by_state = df.groupby ("состояние") ["последнее_имя"]. Count ()
>>> n_by_state.head (10)
государственный
АК 16
AL 206
AR 117
Как 2
AZ 48
CA 361
CO 90
CT 240
DC 2
DE 97
Имя: last_name, dtype: int64
  

Звоните .groupby () и передайте имя столбца, который вы хотите сгруппировать, это "состояние" . Затем вы используете ["last_name"] , чтобы указать столбцы, по которым вы хотите выполнить фактическое агрегирование.

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

  • Список из нескольких имен столбцов
  • A dict или Pandas Series
  • Массив NumPy или Pandas Index , или итерация, подобная массиву, из этих

Вот пример совместной группировки по двум столбцам, который позволяет найти количество членов Конгресса с разбивкой по штатам, а затем по полу:

>>>
  >>> df.groupby (["состояние", "пол"]) ["last_name"]. count ()
государственный пол
АК М 16
AL F 3
       M 203
AR F 5
       M 112
                ...
WI M 196
WV F 1
       M 119
WY F 2
       M 38
Имя: last_name, длина: 104, dtype: int64
  

Аналогичный запрос SQL будет выглядеть так:

  ВЫБРАТЬ состояние, пол, количество (имя)
ИЗ df
ГРУППА ПО штатам, полу
ЗАКАЗАТЬ ПО штату, полу;
  

Как вы увидите дальше, .groupby () и сопоставимые операторы SQL являются близкими родственниками, но часто функционально не идентичны.

Примечание : здесь есть еще одно небольшое различие в сравнении Pandas GroupBy и SQL: в версии Pandas в некоторых штатах отображается только один пол. При разработке этого руководства мы обнаружили небольшую, но сложную ошибку в источнике Pandas, которая не обрабатывает наблюдаемый параметр с определенными типами данных. Не бойся! В этом конкретном случае есть несколько обходных путей.

Pandas GroupBy против SQL

Это хорошее время, чтобы продемонстрировать одно заметное различие между операцией Pandas GroupBy и SQL-запросом, приведенным выше. Набор результатов SQL-запроса содержит три столбца:

  1. состояние
  2. пол
  3. количество

В версии Pandas сгруппированные столбцы помещаются в MultiIndex результирующего Series по умолчанию:

>>>
  >>> n_by_state_gender = df.groupby (["состояние", "пол"]) ["last_name"]. count ()
>>> тип (n_by_state_gender)
<класс 'pandas.core.series.Series'>
>>> n_by_state_gender.index [: 5]
MultiIndex ([('AK', 'M'),
            ('AL', 'F'),
            ('AL', 'M'),
            ('AR', 'F'),
            ('РУКА')],
           names = ['состояние', 'пол'])
  

Чтобы более точно имитировать результат SQL и переместить сгруппированные столбцы обратно в столбцы результата, вы используете as_index = False :

>>>
  >>> df.groupby (["состояние", "пол"], as_index = False) ["last_name"]. count ()
    указать пол last_name
0 AK F NaN
1 АК М 16.0
2 AL F 3.0
3 AL M 203.0
4 AR F 5.0
.. ... ... ...
111 WI M 196.0
112 WV F 1.0
113 WV M 119.0
114 WY F 2.0
115 WY M 38.0

[116 строк x 3 столбца]
  

Это дает DataFrame с тремя столбцами и RangeIndex , а не Series с MultiIndex .Короче говоря, использование as_index = False заставит ваш результат более точно имитировать вывод SQL по умолчанию для аналогичной операции.

Примечание : В df.groupby (["состояние", "пол"]) ["last_name"]. Count () вы также можете использовать .size () вместо .count () , поскольку вы знаете, что нет NaN фамилий. Использование .count () исключает NaN значений, а .size () включает все, NaN или нет.

Также обратите внимание, что приведенные выше запросы SQL явно используют ORDER BY , тогда как .groupby () — нет. Это потому, что .groupby () делает это по умолчанию через свой параметр sort , который равен True , если вы не укажете иное:

>>>
  >>> # Не сортировать результаты по ключам сортировки
>>> df.groupby ("состояние", sort = False) ["last_name"]. count ()
государственный
DE 97
VA 432
SC 251
MD 305
PA 1053
      ...
АК 16
PI 13
VI 4
ГУ 4
Как 2
Имя: last_name, длина: 58, dtype: int64
  

Затем вы погрузитесь в объект, который фактически создает .groupby () .

Как работает Pandas GroupBy

Прежде чем углубляться в детали, вернемся к .groupby () :

>>>
  >>> by_state = df.groupby ("состояние")
>>> печать (by_state)

  

Что это за штука DataFrameGroupBy ? Его .__ str __ () не дает много информации о том, что это на самом деле и как работает. Причина, по которой объект DataFrameGroupBy может быть трудно осмыслить, заключается в том, что по своей природе это ленивый . На самом деле он не выполняет никаких действий для получения полезного результата, пока вы об этом не скажете.

Один термин, который часто используется вместе с .groupby () — это разделить-применить-объединить . Имеется в виду цепочка из трех шагов:

  1. Разбить таблицу на группы
  2. Применить некоторые операции к каждой из этих меньших таблиц
  3. Объединить результатов

Может быть трудно проверить df.groupby ("state") , потому что он практически ничего из этого не делает, пока вы не сделаете что-то с полученным объектом. Опять же, объект Pandas GroupBy ленив.Он задерживает практически каждую часть процесса разделения-применения-объединения до тех пор, пока вы не вызовете для него какой-либо метод.

Итак, как вы можете мысленно разделить этапы разделения, применения и комбинирования, если вы не видите, что какие-либо из них происходят изолированно? Один из полезных способов проверить объект Pandas GroupBy и увидеть разделение в действии — перебрать его. Это реализовано в DataFrameGroupBy .__ iter __ () и создает итератор пар ( группа , DataFrame ) для DataFrames:

>>>
  >>> для состояния, кадр в by_state:
... print (f "Первые 2 записи для {состояние! r}")
...     Распечатать("------------------------")
... print (frame.head (2), end = "\ n \ n")
...
Первые 2 записи для "АК"
------------------------
     last_name first_name день рождения пол тип государство вечеринка
6619 Васки Франк 1875-04-20 Представитель А.К. Демократ
6647 Кейл Томас 1848-09-17 Представитель AK Independent

Первые 2 записи для "AL"
------------------------
    last_name first_name день рождения пол тип государство вечеринка
912 Кроуэлл Джон 1780-09-18 Депутат Аль-республиканец
991 Уокер Джон 1783-08-12 Мсен А.Л. Республиканец
  

Если вы работаете над сложной задачей агрегации, то итерация по объекту Pandas GroupBy может быть отличным способом визуализировать split часть команды split-apply-comb.

Есть несколько других методов и свойств, позволяющих изучить отдельные группы и их разбиения. Атрибут .groups даст вам словарь из пар {имя группы: метка группы} . Например, by_state — это dict с состояниями в качестве ключей. Вот значение для ключа "PA" :

>>>
  >>> by_state.groups ["PA"]
Int64Index ([4, 19, 21, 27, 38, 57, 69, 76, 84,
               88,
            ...
            11842, 11866, 11875, 11877, 11887, 11891, 11932, 11945, 11959,
            11973],
           dtype = 'int64', длина = 1053)
  

Каждое значение представляет собой последовательность позиций индекса для строк, принадлежащих этой конкретной группе. В выходных данных выше 4 , 19 и 21 — это первые индексы в df , в которых состояние равно «PA».

Вы также можете использовать .get_group () как способ перехода к подтаблице из одной группы:

>>>
  >>> by_state.get_group ("PA")
      last_name first_name день рождения пол тип государство вечеринка
4 Климер Джордж 1739-03-16 М реп. PA NaN
19 Маклай Вильям 1737-07-20 Мсен П.А. Анти-администрация
21 Моррис Роберт 1734-01-20 Мсен PA Pro-Administration
27 Винкооп Генри 1737-03-02 М респ PA NaN
38 Джейкобс Израиль 1726-06-09 М реп PA NaN
... ...... ... ... ... ... ...
11891 Брэди Роберт 1945-04-07 Депутат П.А. Демократ
11932 Законопроект Шустера 1961-01-10 Депутат PA Республиканский
11945 Ротфус Кейт 1962-04-25 Депутат PA Республиканец
11959 Костелло Райан 1976-09-07 Депутат ПА, республиканец
11973 Марино Том 1952-08-15 Депутат ПА, республиканец
  

Это практически эквивалентно использованию .loc [] . Вы можете получить тот же результат с чем-то вроде df.loc [df ["state"] == "PA"] .

Примечание : я использую общий термин Pandas GroupBy object для обозначения как объекта DataFrameGroupBy , так и объекта SeriesGroupBy , между которыми много общего.

Также стоит упомянуть, что .groupby () выполняет часть , но не всю работу по разделению, создавая экземпляр класса Grouping для каждого передаваемого ключа.Однако многие методы класса BaseGrouper , который содержит эти группировки, вызываются лениво, а не в __init __ () , и многие также используют дизайн кэшированных свойств.

Далее, как насчет применить часть ? Вы можете думать об этом шаге процесса как о применении одной и той же операции (или вызываемой) к каждой «подтаблице», которая создается на стадии разделения. (Я не знаю, технический ли термин «подтаблица», но я не нашел лучшего 🤷‍♂️)

Из объекта Pandas GroupBy by_state вы можете получить начальный U.Состояние S. и DataFrame с next () . Когда вы перебираете объект Pandas GroupBy, вы получаете пары, которые можно распаковать в две переменные:

>>>
  >>> state, frame = next (iter (by_state)) # Первый кортеж из итератора
>>> состояние
'АК'
>>> frame.head (3)
     last_name first_name день рождения пол тип государство вечеринка
6619 Васки Франк 1875-04-20 Представитель А.К. Демократ
6647 Кейл Томас 1848-09-17 Представитель AK Independent
7442 Григсби Джордж 1874-12-02 М реп AK NaN
  

А теперь вернитесь к исходной, полноценной работе:

>>>
  >>> df.groupby ("состояние") ["last_name"]. count ()
государственный
АК 16
AL 206
AR 117
Как 2
AZ 48
...
  

Этап применения , примененный к вашему единственному подмножеству DataFrame , будет выглядеть следующим образом:

>>>
  >>> frame ["last_name"]. Count () # Подсчет состояния == 'AK'
16
  

Вы можете видеть, что результат 16 совпадает со значением AK в комбинированном результате.

Последний шаг, комбайн , не требует пояснений.Он просто берет результаты всех примененных операций ко всем подтаблицам и объединяет их вместе интуитивно понятным способом.

Пример 2: Набор данных о качестве воздуха

Набор данных о качестве воздуха содержит ежечасные показания датчика газа в Италии. Отсутствующие значения обозначаются в CSV-файле цифрами -200 . Вы можете использовать read_csv () , чтобы объединить два столбца в метку времени, используя подмножество других столбцов:

  импортировать панд как pd

df = pd.read_csv (
    "groupby-data / airqual.csv",
    parse_dates = [["Дата", "Время"]],
    na_values ​​= [- 200],
    usecols = ["Дата", "Время", "CO (GT)", "T", "RH", "AH"]
) .rename (
    columns = {
        "CO (GT)": "co",
        "Date_Time": "tstamp",
        «T»: «temp_c»,
        «RH»: «rel_hum»,
        «AH»: «abs_hum»,
    }
) .set_index ("tstamp")
  

Это создает DataFrame с DatetimeIndex и четырьмя столбцами с плавающей запятой :

>>>
  >>> df.глава()
                      co temp_c rel_hum abs_hum
tstamp
2004-03-10 18:00:00 2,6 13,6 48,9 0,758
2004-03-10 19:00:00 2,0 13,3 47,7 0,726
2004-03-10 20:00:00 2,2 11,9 54,0 0,750
2004-03-10 21:00:00 2,2 11,0 60,0 0,787
2004-03-10 22:00:00 1,6 11,2 59,6 0,789
  

Здесь co — это среднее показание окиси углерода в этот час, а temp_c , rel_hum и abs_hum — это средняя температура в градусах Цельсия, относительная влажность и абсолютная влажность за этот час, соответственно.Наблюдения за период с марта 2004 г. по апрель 2005 г.:

>>>
  >>> df.index.min ()
Отметка времени ('2004-03-10 18:00:00')
>>> df.index.max ()
Отметка времени ('2005-04-04 14:00:00')
  

До сих пор вы сгруппировали столбцы, указав их имена как str , например df.groupby ("state") . Но .groupby () намного более гибок, чем это! Посмотрим, как дальше.

Группировка по производным массивам

Ранее вы видели, что первый параметр до .groupby () может принимать несколько разных аргументов:

  • Столбец или список столбцов
  • A dict или Pandas Series
  • Массив NumPy или Pandas Index , или итерация, подобная массиву, из этих

Вы можете воспользоваться последней опцией для группировки по дням недели. Вы можете использовать индекс .day_name () для создания Pandas Index строк. Вот первые десять наблюдений:

>>>
  >>> day_names = df.index.day_name ()
>>> type (day_names)
<класс 'pandas.core.indexes.base.Index'>
>>> day_names [: 10]
Index (['среда', 'среда', 'среда', 'среда', 'среда',
       «Среда», «четверг», «четверг», «четверг», «четверг»],
      dtype = 'объект', name = 'tstamp')
  

Затем вы можете взять этот объект и использовать его как ключ .groupby () . Говоря языком панд, day_names — это , подобное массиву . Это одномерная последовательность ярлыков.

Примечание : для Pandas Series вместо Index вам понадобится аксессор .dt , чтобы получить доступ к таким методам, как .day_name () . Если ser — это ваш Series , тогда вам понадобится ser.dt.day_name () .

Теперь передайте этот объект в .groupby () , чтобы найти среднее значение оксида углерода () co ) по дням недели:

>>>
  >>> df.groupby (day_names) ["co"]. mean ()
tstamp
Пятница, 2.543
Понедельник 2.017
Суббота 1861
Воскресенье 1.438
Четверг 2.456
Вторник 2.382
Среда 2.401
Имя: co, dtype: float64
  

Процесс разделения-применения-объединения ведет себя в основном так же, как и раньше, за исключением того, что на этот раз разделение выполняется на искусственно созданном столбце. Этот столбец не существует в самом DataFrame, а скорее является производным от него.

Что, если вы хотите сгруппировать не только по дням недели, но и по часам дня? Этот результат должен иметь 7 * 24 = 168 наблюдение.Для этого вы можете передать список объектов, подобных массиву. В этом случае вы передадите объекты Pandas Int64Index :

>>>
  >>> hr = df.index.hour
>>> df.groupby ([day_names, hr]) ["co"]. mean (). rename_axis (["dow", "hr"])
доу час
Пятница 0 1.936
           1 1,609
           2 1,172
           3 0,887
           4 0,823
                 ...
Среда 19, 4.147
           20 3,845
           21 2,898
           22 2.102
           23 1,938
Имя: co, Длина: 168, dtype: float64
  

Вот еще один похожий случай, в котором .cut () используется для разделения значений температуры на дискретные интервалы:

>>>
  >>> bins = pd.cut (df ["temp_c"], bins = 3, labels = ("cool", "теплый", "горячий"))
>>> df [["rel_hum", "abs_hum"]]. groupby (bin) .agg (["средний", "средний"])
       rel_hum abs_hum
          средняя медиана средняя медиана
temp_c
прохладно 57,651 59,2 0,666 0.658
теплый 49,383 49,3 1,183 1,145
горячий 24,994 24,1 1,293 1,274
  

В этом случае ячеек на самом деле Series :

>>>
  >>> тип (бункеры)
<класс 'pandas.core.series.Series'>
>>> bins.head ()
tstamp
2004-03-10 18:00:00 круто
2004-03-10 19:00:00 круто
2004-03-10 20:00:00 круто
2004-03-10 21:00:00 круто
2004-03-10 22:00:00 круто
Имя: temp_c, dtype: category
Категории (3, объект): [круто <тепло <горячо]
  

Будь то Series , массив NumPy или список, не имеет значения.Важно то, что ячеек по-прежнему служит последовательностью этикеток, одна из холодных , теплых или горячих . Если вы действительно этого хотите, вы также можете использовать категориальный массив или даже старый простой список :

  • Список нативного Python: df.groupby (bins.tolist ())
  • Pandas Категориальный массив: df.groupby (bins.values)

Как видите, .groupby () умен и может обрабатывать множество различных типов ввода. Любой из них даст тот же результат, потому что все они функционируют как последовательность меток, на которых выполняется группировка и разделение.

Передискретизация

Вы сгруппировали df по дням недели с df.groupby (day_names) ["co"]. Mean () . Теперь рассмотрим другое. Что, если вы хотите сгруппировать по году и кварталу наблюдения? Вот один из способов добиться этого:

>>>
  >>> # См. Более простую альтернативу ниже
>>> df.groupby ([df.index.year, df.index.quarter]) ["co"]. agg (
... ["макс", "мин"]
...) .rename_axis (["год", "квартал"])
               макс мин
квартал года
2004 1 8,1 0,3
     2 7,3 0,1
     3 7,5 0,1
     4 11,9 0,1
2005 1 8,7 0,1
     2 5,0 0,3
  

В качестве альтернативы всю эту операцию можно выразить через повторной выборки . Одно из применений повторной выборки - это группировка по времени. Все, что вам нужно сделать, это передать строку частоты, например «Q» для «квартальный» , а Pandas сделает все остальное:

>>>
  >>> df.resample ("Q") ["co"]. agg (["max", "min"])
             макс мин
tstamp
2004-03-31 8,1 0,3
2004-06-30 7,3 0,1
2004-09-30 7,5 0,1
31 декабря 2004 г. 11,9 0,1
31 марта 2005 г. 8,7 0,1
2005-06-30 5,0 0,3
  

Часто, когда вы используете .resample () , вы можете выразить операции группировки по времени гораздо более сжато. Результат может немного отличаться от более подробного эквивалента .groupby () , но вы часто обнаружите, что .resample () дает именно то, что вы ищете.

Пример 3: Набор данных агрегатора новостей

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

  импортировать дату и время как dt
импортировать панд как pd

def parse_millisecond_timestamp (ts: int) -> dt.datetime:
    "" "Преобразование мс с эпохи Unix в экземпляр даты и времени UTC." ""
    вернуть dt.datetime.fromtimestamp (ts / 1000, tz = dt.timezone.utc)

df = pd.read_csv (
    "groupby-data / новости.csv ",
    sep = "\ t",
    заголовок = Нет,
    index_col = 0,
    names = ["название", "URL", "розетка", "категория", "кластер", "хост", "tstamp"],
    parse_dates = ["tstamp"],
    date_parser = parse_millisecond_timestamp,
    dtype = {
        "розетка": "категория",
        "категория": "категория",
        "кластер": "категория",
        "хост": "категория",
    },
)
  

Чтобы прочитать его в память с помощью правильных dyptes , вам понадобится вспомогательная функция для анализа столбца временной метки. Это потому, что оно выражается в миллисекундах, прошедших с эпохи Unix, а не в долях секунд, как принято считать.Подобно тому, что вы делали раньше, вы можете использовать Категориальный dtype для эффективного кодирования столбцов, которые имеют относительно небольшое количество уникальных значений относительно длины столбца.

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

  • b для бизнеса
  • т для науки и техники
  • e для развлечений
  • м на здоровье

Вот первая строка:

>>>
  >>> df.iloc [0]
название Чиновник ФРС говорит, что ...
url http: //www.latimes.co ...
выход Los Angeles Times
категория b
кластер ddUyU0VZz0BRneMioxUPQ ...
хост www.latimes.com
tstamp 10.03.2014 16: 52: 50.6 ...
Имя: 1, dtype: объект
  

Теперь, когда вы получили представление о данных, вы можете задавать о них более сложные вопросы.

Использование лямбда-функций в

.groupby ()

Этот набор данных предлагает гораздо больше потенциально связанных вопросов.Я выброшу случайный, но значимый вопрос: какие СМИ больше всего говорят о Федеральной резервной системе? Предположим для простоты, что это влечет за собой поиск с учетом регистра упоминаний "Fed" . Имейте в виду, что это может привести к ложным срабатываниям с такими терминами, как «Федеральное правительство».

Чтобы подсчитать упоминания по розетке, вы можете вызвать .groupby () на розетке, а затем буквально .apply () функцию для каждой группы:

>>>
  >>> df.groupby ("розетка", sort = False) ["title"]. apply (
... лямбда ser: ser.str.contains ("Fed"). sum ()
...) .nlargest (10)
выход
Reuters 161
NASDAQ 103
Businessweek 93
Investing.com 66
Wall Street Journal \ (блог \) 61
MarketWatch 56
Moneynews 55
Bloomberg 53
GlobalPost 51
Экономика Таймс 44
Имя: title, dtype: int64
  

Давайте разберемся с этим, поскольку выполняется несколько последовательных вызовов методов.Как и раньше, вы можете извлечь первую группу и соответствующий ей объект Pandas, взяв первый кортеж из итератора Pandas GroupBy:

>>>
  >>> title, ser = next (iter (df.groupby ("outlet", sort = False) ["title"]))
>>> название
"Лос-Анджелес Таймс"
>>> ser.head ()
1 Представитель ФРС говорит, что слабые данные вызваны погодой, ...
Акции 486 падают из-за неутешительных новостей из Азии
1124 Улики к возвышению Чингисхана, написанные в р...
1146 Слоны различают человеческие голоса по полу, возрасту ...
1237 Honda разделяет Acura на собственное подразделение, чтобы ...
Имя: заголовок, dtype: объект
  

В этом случае ser - это Pandas Series , а не DataFrame . Это потому, что вы последовали за вызовом .groupby () с помощью ["title"] . Это эффективно выбирает этот единственный столбец из каждой подтаблицы.

Далее идет .str.contains ("Fed") . Это возвращает логическое значение Series , которое имеет значение True , когда заголовок статьи регистрирует совпадение при поиске.Разумеется, первая строка начинается с "Представитель ФРС говорит, что данные слабые из-за погоды, ..." и загорается как True :

>>>
  >>> ser.str.contains ("ФРС")
1 Верно
486 Ложь
1124 Ложь
1146 Ложь
1237 Ложь
          ...
421547 Ложь
421584 Ложь
421972 Ложь
422226 Ложь
422905 Ложь
Имя: title, Длина: 1976, dtype: bool
  

Следующий шаг - .sum () , это Series .Поскольку bool технически является просто специализированным типом int , вы можете суммировать Series из True и False так же, как вы суммируете последовательность из 1 и 0 :

>>>
  >>> ser.str.contains ("ФРС"). Sum ()
17
  

Результат - количество упоминаний "Fed" в Los Angeles Times в наборе данных. Та же процедура применяется к Reuters, NASDAQ, Businessweek и остальным.

Повышение производительности

.groupby ()

Давайте снова вернемся к .groupby (...). Apply () , чтобы понять, почему этот шаблон может быть неоптимальным. Чтобы получить некоторую справочную информацию, ознакомьтесь с разделом «Как ускорить работу ваших проектов Pandas». Что может случиться с .apply () , так это то, что он будет эффективно выполнять цикл Python для каждой группы. Хотя шаблон .groupby (...). Apply () может обеспечить некоторую гибкость, он также может запретить Pandas использовать оптимизацию на основе Cython.

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

  • Одномерный массив NumPy
  • Список
  • A Pandas Series или Index

Также обратите внимание, что .groupby () - это допустимый метод экземпляра для Series , а не только для DataFrame , поэтому вы можете по существу инвертировать логику разделения. Имея это в виду, вы можете сначала построить Series логических значений, которые указывают, содержит ли заголовок «Fed» :

>>>
  >>> mentions_fed = df ["title"]. Str.contains ("Fed")
>>> тип (mentions_fed)
<класс 'pandas.core.series.Series'>
  

Сейчас, .groupby () также является методом Series , поэтому вы можете сгруппировать один Series на другой:

>>>
  >>> импортировать numpy как np
>>> mentions_fed.groupby (
... df ["розетка"], sort = False
...) .sum (). nlargest (10) .astype (np.uintc)
выход
Reuters 161
NASDAQ 103
Businessweek 93
Investing.com 66
Wall Street Journal \ (блог \) 61
MarketWatch 56
Moneynews 55
Bloomberg 53
GlobalPost 51
Экономика Таймс 44
Имя: title, dtype: uint32
  

Два Series не обязательно должны быть столбцами одного и того же объекта DataFrame .Просто они должны быть одинаковой формы:

>>>
  >>> mentions_fed.shape
(422419,)
>>> df ["розетка"]. shape
(422419,)
  

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

  # Версия 1: использование .apply () `
df.groupby ("розетка", sort = False) ["название"].применять(
    лямбда ser: ser.str.contains ("Fed"). sum ()
) .большой (10)

# Версия 2: использование векторизации
mentions_fed.groupby (
    df ["розетка"], sort = False
) .sum (). nlargest (10) .astype (np.uintc)
  

На моем ноутбуке версия 1 занимает 4,01 секунды, а версия 2 - всего 292 миллисекунды. Это впечатляющая разница во времени процессора в 14 раз для нескольких сотен тысяч строк. Подумайте, насколько разительной становится разница, когда ваш набор данных вырастает до нескольких миллионов строк!

Примечание : В этом примере несколько деталей в данных для простоты затушевываются.А именно, поисковый запрос «Fed» может также найти упоминания о таких вещах, как «федеральное правительство».

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

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

Pandas Group Автор: Собираем все вместе

Если вы вызовете dir () для объекта Pandas GroupBy, вы увидите там достаточно методов, чтобы у вас закружилась голова! Может быть сложно отслеживать все функциональные возможности объекта Pandas GroupBy.Один из способов рассеять туман - разделить различные методы на то, что они делают и как ведут себя.

В целом методы объекта Pandas GroupBy можно разделить на несколько категорий:

  1. Методы агрегирования (также называемые методами редукции ) «сглаживают» множество точек данных в агрегированную статистику по этим точкам данных. В качестве примера можно взять сумму, среднее значение или медианное значение 10 чисел, где результатом будет только одно число.

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

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

  4. Мета-методы меньше связаны с исходным объектом, для которого вы вызвали .groupby () , и больше ориентированы на предоставление вам высокоуровневой информации, такой как количество групп и индексы этих групп.

  5. Методы построения имитируют API построения графиков для Pandas Series или DataFrame , но обычно разбивают выходные данные на несколько подзаголовков.

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

Примечание: В документах Pandas есть еще одна отдельная таблица с собственной схемой классификации. Выберите то, что подходит вам и кажется наиболее интуитивно понятным!

Вы можете ознакомиться с более подробной разбивкой по каждой категории и различным методам .groupby () , которые подпадают под них:

Методы агрегирования (также называемые методами редукции ) «сглаживают» множество точек данных в агрегированную статистику по этим точкам данных. В качестве примера можно взять сумму, среднее значение или медианное значение 10 чисел, где результатом будет только одно число. Вот несколько методов агрегирования:

Методы фильтрации возвращаются к вам с подмножеством исходного DataFrame . Чаще всего это означает использование .filter () для удаления целых групп на основе некоторой сравнительной статистики об этой группе и ее подтаблице. Также имеет смысл включить в это определение ряд методов, исключающих определенные строки из каждой группы. Вот несколько методов фильтрации:

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

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

Есть несколько методов объектов Pandas GroupBy, которые не попадают в указанные выше категории.Эти методы обычно создают промежуточный объект, который является , а не , DataFrame или Series . Например, df.groupby (...). Rolling (...) создает объект RollingGroupby , который затем можно вызывать методы агрегации, фильтрации или преобразования:

  • . Расширение ()
  • . Труба ()
  • .resample ()
  • . Прокатка ()

Заключение

В этом уроке вы прошли тонну земли на .groupby () , включая его дизайн, API и способы объединения методов в цепочку для получения данных в выводе, который соответствует вашим целям.

Вы узнали:

  • Как использовать Pandas GroupBy для операций с реальными данными
  • Как работает цепочка операций разделить-применить-объединить и как ее можно разложить на шаги
  • Как методы группы Pandas GroupBy могут быть помещены в разные категории в зависимости от их цели и результата

- это намного больше.groupby () , чем вы можете охватить в одном руководстве. Ознакомьтесь с ресурсами ниже и используйте здесь примеры наборов данных в качестве отправной точки для дальнейшего изучения!

Вы можете загрузить исходный код для всех примеров в этом руководстве, щелкнув ссылку ниже:

Дополнительные ресурсы о Pandas Group От

Руководства по документации

Pandas - это удобные пошаговые инструкции по различным аспектам Pandas. Вот некоторые части документации, с которыми вы можете ознакомиться, чтобы узнать больше о Pandas GroupBy:

Документация API представляет собой более полную техническую ссылку на методы и объекты:

Нечетных групп 10 (5 + 7 = 12, часть 2)

Во второй части «5 + 7 = 12» мы рассмотрим еще пару приложений 5757.Мы начнем с того места, где остановились, а затем перейдем к некоторым примерам использования большого барабана, чтобы развести руки.

1) После предыдущего урока по 5 + 7 = 12 у меня было несколько человек, которые спрашивали меня о некоторых конкретных приложениях. Я не хочу давать вам слишком много, потому что процесс изучения различных сочетаний вокруг набора - это часть процесса изучения этих фраз как вариантов, а не просто одноразового приложения. Однако вот действительно простая заливка, в которой акценты в правой руке перемещаются по всему комплекту.Просто убедитесь, что вы точно играете с подразделением и не теряете время из-за расстановки акцентов. Когда у вас есть это, перемещайте его и придумывайте свои собственные версии. Это просто очень простая отправная точка.

2) Вот простой пример канавки. Я поместил заднюю долю в разные точки в каждой группе из семи. Повеселитесь, переставляя ритм самостоятельно, а также переставляя группы по 5 и 7. Им не нужно чередоваться и не нужно начинать с 5 каждый раз.

3A) В следующих трех примерах я добавил несколько басовых барабанов. В этом примере только три ноты в рукопашной и два басовых барабана. Обратите внимание, что во всех примерах в 3 я написал их в виде пятерок или семерок. Просто аккуратно сгруппируйте каждую фразу. В более поздних примерах 4 и 5 мы по-прежнему будем играть их шестерками. А пока просто узнайте, играя в группу из 5.

3B) Это то же самое, что и 3A, за исключением того, что мы играем первые три ноты RLL, а не из рук в руки.Это откроет другие возможности оркестровки при перемещении по установке.

3C) В этом примере мы взяли базовую рукопашную версию группы из 7 нот и заменили последние две на басовые барабаны. Что мне действительно нравится в этом, так это то, что руки теперь разыгрываются группой из 5 рук, так что вы можете использовать некоторые оркестровки, которые, я надеюсь, вы выработали из предыдущих уроков.

4) Здесь у нас есть группа из семи, а затем пять с добавленными басовыми барабанами. Он действительно красиво обтекает барабаны, так что потратьте некоторое время на оркестровку целым множеством различных способов.

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

6/7) Надеюсь, вам понравилось.