Визуализация данных, второе издание, расширение, первая премия, работа Hejing.com по анализу вызовов автомобилей
Визуализация данных, второе издание, расширение, первая премия, работа Hejing.com по анализу вызовов автомобилей

Визуализация данных, второе издание, расширение, онлайн-анализ вызова такси

Введение в конкурс

Эта статья из анализа сообщества китов. данныхсоревнование,Ссылка на конкурс следующая:[Весенний фестиваль 2023 Limited] Анализ работы онлайн-сервиса такси

Это традиционная программа Весеннего фестиваля научного сообщества открытого исходного кода и простого сообщества. Это также первый выпуск серии [Тренировочных лагерей по бизнес-анализу], организованных совместно с китовым сообществом и простыми людьми. -учитель Земли Чен. Его цель - использовать сценарии анализа реального мира и побудить учащихся использовать реальные вещи во время праздника Весеннего фестиваля. данныеjob, продвижение, поиск работыианализ данныхтрудоспособность。

Практичный учитель Чен — директор по данным начинающей компании, менеджер паблик-аккаунта «Практический учитель Чен», автор книги «Полное руководство по бизнес-анализу» с оценкой Дубана. 9.0, а также выступает в роли автора вопросов и судьи на этом мероприятии.

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

Реальный бизнес-анализ таков: 80% ежедневной работы — это однообразные, скучные ежедневные, еженедельные, ежемесячные отчеты, эти отчеты по мониторингу и временному сбору данных. Однако руководители бизнес-отдела надеются, что с помощью простого мониторинга можно обнаружить проблемы и сделать выводы. Так Как увидеть подсказки в ежедневных данных? Как найти стандарт самостоятельно, если стандартного ответа нет? Как на основе данных можно сказать одно, два, три и быть убедительным? Это большое испытание для бизнес-аналитика.

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

Введение данных

Данные представляют собой данные о работе пяти городов определенного региона, разделенные на временные периоды за одну неделю. Поле: период времени, который представляет время суток, 0 — от 0 до 1 часа и т. д. Пузырь: взять таксиAPP, пассажиры выбирают отправную точку и пункт назначения, а приложение Советы по дополнительным моделям&Цена за один раз"пузырь" Вызов: увидев всплывающее сообщение, пассажир нажимает кнопку «Позвонить», чтобы позвонить. Ответ: Водитель получает заказ после того, как увидел звонок пассажира, что является «ответом». Заказ выполнен: водитель завершает заказ, а пассажир платит как «Заказ выполнен». Водитель онлайн: сколько раз водитель был онлайн за каждый период.

Чтобы уменьшить сложность анализа, принимаются следующие допущения:

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

1-е место получила работа ИТ-специалиста Чжан Моумоу.

ссылка:【2023 Spring Festival Limited】Отчет об онлайн-анализе работы службы такси

в заключение

  • Определите ключевые показатели:

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

  • Анализ по параметру «Город»:

AED принадлежатьбольшой Городбольшой Городсередина D из APP Лучше всего работает, за ним следует Э, последнее А, но A Это крупнейший город региона. в A изразличные периоды времени Полный Тарифы заказа все плохие. Предварительно исключено, что на это влияет трафик. A Городиз как-то связан с общей деятельностью или конкуренцией, длябольшой Город A,Общее количество заказов больше,Важна изпрофиточка,Городу нужна серьезная оптимизация,Есть больший шансBC принадлежать Малые и средние города Малые и средние городаиз Полный заказ Ставка Все лучше,C Городиздневное время Полный у заказа лучшая цена, но ночь 0-5 Скорость выполнения заказов низкая, C Город 0-5 точка Количество водителей небольшое, минимальное 284 Люди, на которые приходится пиковое значение в течение дня 30000 из 1% влево и вправо, можно увеличить количество водителей и увеличить C Удобство города для пассажиров. 3 Пример пузырька данных о точках 1148 вызов 452 отвечать 248 Полный заказ 212 Из индикаторакорреляционный анализ: Полный заказколичествои Водитель количество онлайн имеет наибольшую корреляцию,иллюстрировать Многие водители, то есть иллюстрировать Город большой, а количество выполненных заказов больше, так что можно Тяжелыйточкасосредоточиться набольшой Город,В городе больше всего водителей,Но в целом Полный Нет сравнения по количеству заказов C Ичита. Можно обратиться к A городиз Заказать цену C городиз заказать цены, сравнить, есть ли A город потому, что город большой, что привело к тому, что все больше пользователей, путешествующих на большие расстояния, пользуются метро и другими способами. Полный заказ Ставка и Количество заказов, полученных водителями, и соотношение водителей к пассажирам (количество заказов, выполненных водителями в час) Корреляция является наибольшей, что указывает на то, что она может пройти Улучшить инициативу водителей по принятию заказов на улучшение; заказ Ставка> Существует сильная положительная корреляция между количеством заказов, полученных водителями, и соотношением водителей и пассажиров (количество заказов, выполненных водителями в час), иллюстрировать продвигатьводительизинициатива Принимайте заказы Позитивность,Может увеличить количество заказов, получаемых водителями,продвигатьвызовприезжать Принимайте заказыприезжать Полный соотношение заказиз.

  • Анализируйте с помощью одного показателя

С точки зрения коэффициента конверсии, A Коэффициент конверсии города невелик, и окончательный платеж совершает относительно небольшое количество людей, т.е. A Город может сосредоточиться на улучшении центрального делового района из Полный количество заказов выше, чем A и E от Полный заказ Смотри, А и E из Полный заказ имеет наименьшее количество, и масштаб города, количество водителей не соответствует Из воронкообразной диаграммы видно, что A Городизпузырящийся - вызов - действительно, наибольшее количество погибших людей, среди которых существовало и др. Городвызовприезжатьотвечать ок. 10-30w изплохо, и A Городсуществовать 70W из Разница。

  • Анализ в заключение

  1. Продолжать поддерживать BC Городиз Уровень удовлетворенности пользователей app Зависимости, например, в C Город,продвигать 0-5 точкииз числа водителей и есть мотивация водителей, снижение C Городизобщийвызовиотвечать Число погибших。
  2. улучшать A Коэффициент конверсии Городиз слишком низкий

Если смотреть со стороны воронки,это количество пузырьков. 1134W ивызовчисло 470W Больше различий может улучшить выбор автомобиля или рекомендации по ценам. Оптимизация плана работы может включать маршруты, которые можно дополнительно оптимизировать. В то же время можно рассмотреть возможность использования купонов для повышения коэффициента конверсии. Кроме того, видно, что А. Существует множество драйверов «Городиз», но количество вызовов явно не слишком велико. существоватьрабочий деньиз 18 точка - это пиковый период вызовов, но количество онлайн-водителей сократилось примерно на 20%. 4000 Тысячи, в то время как за тот же период избольшой Город D Число городских онлайн-водителей имеет тенденцию к росту, и в этот период количество городских онлайн-водителей можно оптимизировать.

Обработка данных и отражений

Обработка данных

Введение данных

данные — пять городов в определенном регионе, 1 Эксплуатационные данные за еженедельный период времени Поле: период, обозначающий время суток, 0. представлять 0 Точка ~1 точка и так далее Пузырь: взять такси APP , пассажиры выбирают отправную точку и пункт назначения, а приложение Советы по дополнительным моделям & Цена за один раз "пузырь" Вызов: Пассажиры нажали кнопку, увидев всплывающее сообщение «Приехать». “вызов” кнопка, на этот раз вызов есть: Водитель принимает заказ, увидев вызов пассажира. “отвечать” Полный заказ: Водитель выполняет заказ, а пассажир оплачивает “Полный заказ” Водитель онлайн: сколько раз водитель был онлайн за каждый период.

Чтобы уменьшить сложность анализа, принимаются следующие допущения:

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

Удалите грязные данные: девятый и десятый столбцы «изданные» пусты, поэтому удалите эти два столбца «изданные»: ![![ImageName](https://img-blog.csdnimg.cn/img_convert/6e39fe53e3b692ff8043726b04c2d2b7.png#pic_center)

Исследование данных

коэффициент конверсии:Полный заказчисло / Количество пузырьков,Из выбора пользователяточкаконецточкаприезжать Полный заказиз Обзор Ставка соотношение водитель/пассажир:Полный заказчисло / Водитель онлайн,Полный заказчислопредставлятьнастоящийизпассажирколичество,Водитель номер онлайн-величия водителя из количества, обозначающий количество заказов, полученных водителем в единицу времени, что очень важно с точки зрения дохода водителя** Водитель принимает заказ: есть номер / Водитель онлайн , обозначающий готовность водителя принимать заказы, Рабочие дни: 1 Значит понедельник приехать в пятницу израбочий день,0 значит суббота и воскресенье

для оригиналаданныедобавить вкоэффициент конверсии、соотношение водитель/пассажир、рабочий деньтри столбцаданные,Для последующего анализа Будьте готовы

Выбор метода анализа данных

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

анализ данных
корреляционный анализ

использовать corr Функция вычисляет корреляцию между различными показателями и отображает ее в виде тепловой карты:

Как видно из рисунка выше: от Количество пузырьков、вызовчислоприезжатьотвечатьчисло,и Полный Степень корреляции заказномера и з в свою очередь увеличивается; заказчислои Водитель онлайн-номера имеют сильную взаимосвязь, ипериод время также очевидно связано Водитель онлайнчислоипериод время имеет очевидную связь, наблюдается в какой-то период времени,Водитель онлайн число Эйта,Фильмпериод время меньше Количество пузырьков、вызовчисло、отвечатьчислои Полный заказчислоипериод время имеет очевидную положительную корреляцию с из, наблюдаемый, в некоторых случаях период времяиз Заказов много, и какой-то период Заказов по времени мало Существует сильная положительная корреляция между коэффициентом конверсии и соотношением водителей к пассажирам, а также существует сильная положительная корреляция между количеством водителей и скоростью выполнения заказов. рабочий деньи Соотношение водитель/пассажир имеет слабую положительную корреляцию Соотношение водителей и пассажиров положительно связано с количеством заказов, полученных водителями, а фактическое количество водителей в день — это количество водителей в день. заказ весьма актуален. Если вы хотите улучшить; Ставка заказа позволяет максимально увеличить количество изотвечающих водителей.

Цель для этого app Увеличение дохода:

Индикатор Полярной звезды; количество заказа,Полный заказ Количество означает прибыль ,

Как улучшить; количество заказа,

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

Полную ставку заказа можно оптимизировать в пространстве

Анализ коэффициента конверсии

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

Видно, что С городиз имеет самый высокий коэффициент конверсии, а A городиз имеет самый низкий коэффициент конверсии и его можно изучать заново A город:

Нарисуйте процесс заказа города A C из воронкообразной диаграммы:

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

Анализ в заключение

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

Завершенный анализ количества заказов
Анализ в заключение

Количество заказаи Водитель количество онлайн имеет наибольшую корреляцию,иллюстрировать Многие водители, то есть иллюстрировать Город большой, а количество выполненных заказов больше, так что можно Тяжелыйточкасосредоточиться набольшой Город,A В городе больше всего водителей, но A Количество онлайн-водителей в городе снизилось в пиковый период. Это может быть связано с тем, что один водитель использует несколько онлайн-платформ для заказа поездок, что увеличивает зависимость водителя от платформы. Контрастный рабочий деньиз D Город, Д городвечер Полный Количество заказов больше, А городдневное времяиз Полный Количество заказов больше.

Анализ количества водителей

нарисовать многолинейную диаграмму,каждый Городежедневноизсоотношение водитель/пассажир Как показано ниже:

Как видно из рисунка выше:

C Если у водителя города больше заказов, он будет более активным и навязчивым. У всех остальных городов есть возможности для улучшения.

Линейная диаграмма количества процесса заказа «Рисовать каждый Городиз»:

Анализ в заключение

C Город Хотя Количество пузырьковнаименее,новызовчисло、отвечатьчислопрямойприезжать Полный Количество заказов самое большое из

С понедельника по воскресенье, С. городиз Заказчислодабольшинствоиз,но Количество онлайн из водителей却данаименееиз。A Хотя в городе больше всего пузырей, но в конечном итоге заказ выполняется в меньших количествах, поэтому A город это самый необходимый фокус наиз Город. с последующим Э, еще раз D。 Больше пузырьков но Полный Отсутствие заказа может быть операционной проблемой, проблемой конкуренции или транспортной проблемой.

временной анализ
Ежедневный анализ заказов

рисоватькаждыйгородежедневноиз Полный Линейная диаграмма количества заказа:

Анализ в заключение

C Город Хотя Количество пузырьковнаименее,новызовчисло、отвечатьчислопрямойприезжать Полный Количество заказов самое большое из Как видно из приведенного выше рисунка, с понедельника по четверг C городиз Полный количество заказов выше, чемдругой Город,в пятницу,другой Городиз Полный количество заказов выше, чем C город

Анализ каждого периода рабочих дней

рисоватьрабочий денькаждый Городкаждыйпериод времени Полный заказномеризлинейной диаграммы:

Пиковый период для услуг онлайн-заказа автомобилей приходится на 7 приезжать 9 Очки, 17 приезжать 19 точка, индивидуальная поездка на работу и в школу и обратно из точки времени. середина 11 и 14 Временные периоды сильно колеблются, особенно C город, причина в том, что я пошел поесть в полдень, а после еды спрос на такси увеличился. рисовать Суббота и воскресеньекаждый Городкаждыйпериод времени Полный заказномеризлинейная диаграмма

рисоватьрабочий денькаждый Городкаждыйпериод времени Водитель онлайнномериз на линейном графике:

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

Анализ каждого временного периода в субботу и воскресенье

рисовать Суббота и воскресеньекаждый Городкаждыйпериод времени Полный заказномеризлинейной диаграммы:

Суббота и воскресенье Пиковый период для услуг онлайн-заказа автомобилей приходится на 7 приезжать 10、16 приезжать 20 В этот период часть его вызвана сверхурочной работой, а также он совпадает с временем, когда люди путешествуют и играют по выходным. В отличие от рабочего деньиз - это, в 16 приезжать 17 между,Полный Количество услуг такси продолжает расти. Причина в том, что у людей появляется больше свободного времени для поездок по выходным. В это время все больше людей выходят из дома и отправляются домой, что приводит к увеличению количества онлайн-заказов на вызов такси. . * На выходных нет фиксированного времени, чтобы пойти домой, поэтому часы пик в субботу и воскресенье вечером наступают позже и продолжаются. 20 к 21 час.

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

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

Анализ в заключение

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

код
код Язык:javascript
копировать
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, HeatMap, Funnel
rawdata = pd.read_csv(
    '/home/mw/input/car_hailing9900/ride-hailing_data.csv',
    encoding='gb2312')
# rawdata.drop(['Unnamed: 8','Unnamed: 9'],axis=1,inplace=True)
rawdata.head()
код Язык:javascript
копировать
rawdata.info()

<class ‘pandas.core.frame.DataFrame’> RangeIndex: 840 entries,0 to 839 Data columns (total 8 columns): Неделя 840 non-null object период времени 840 non-null int64 Город 840 non-null object Количество пузырьков 840 non-null int64 вызовчисло 840 non-null int64 отвечатьчисло 840 non-null int64 Полный заказчисло 840 non-null int64 Водитель онлайн 840 non-null int64 dtypes: int64(6), object(2) memory usage: 52.6+ KB

код Язык:javascript
копировать
# Максимальное количество отображаемых строк
pd.set_option('display.max_rows', 10)
код Язык:javascript
копировать
# коэффициент конверсии
change_rate = rawdata['Полный заказчисло'] / rawdata['Количество пузырьков']
data = pd.concat([rawdata, change_rate], axis=1).rename(columns={0: 'коэффициент конверсии'})
data
код Язык:javascript
копировать
# соотношение водитель/пассажир Количество онлайн из водителей Среднее количество заказов, полученных в день
rate = (data['Полный заказчисло']/data['Водитель онлайн'])
data = pd.concat([data, rate], axis=1).rename(columns={0: 'соотношение водитель/пассажир'})
data
код Язык:javascript
копировать
# Готовность водителя выполнять заказы
rate = (data['отвечатьчисло'] / data['Водитель онлайн'])
data = pd.concat([data, rate], axis=1).rename(columns={0: 'Водитель принимает заказы'})
data
код Язык:javascript
копировать
# Расчет корреляции
cor = data.corr()
cor
код Язык:javascript
копировать
# генерироватьрабочий деньособенность
data['рабочий день']=data.apply(lambda x:1 if ((x.Неделя=='Понедельник') | (x.Неделя=='Вторник') | (x.Неделя=='Среда') | (x.Неделя=='Четверг') | (x.Неделя=='Пятница')) else 0,axis=1)
data
код Язык:javascript
копировать
# Визуализация корреляции
cor = data.corr()
cor
код Язык:javascript
копировать
# Визуализация корреляции
cor = data.corr()
value = [[x, y, round(cor.values[x][y], 2)]
         for x in range(11) for y in range(11)]
heatmap = HeatMap(init_opts=opts.InitOpts())
heatmap.add_xaxis(list(cor))
heatmap.add_yaxis(
    "",
    list(cor),
    value,
    label_opts=opts.LabelOpts(
        is_show=True,
        position="inside"))
heatmap.set_global_opts(
    title_opts=opts.TitleOpts(title="Релевантность"),
    visualmap_opts=opts.VisualMapOpts(max_=1),
    xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)))
heatmap.render_notebook()

от Количество пузырьков、вызовчислоприезжатьотвечатьчисло,и Полный Степень корреляции заказномера и з в свою очередь увеличивается; заказчислои Водитель онлайн-номера имеют сильную взаимосвязь, ипериод время также очевидно связано Водитель онлайнчислоипериод время имеет очевидную связь, наблюдается в какой-то период времени,Водитель онлайн число Эйта,Фильмпериод время меньше Количество пузырьков、вызовчисло、отвечатьчислои Полный заказчислоипериод время имеет очевидную положительную корреляцию с из, наблюдаемый, в некоторых случаях период времяиз Заказов много, и какой-то период Заказов по времени мало Существует сильная положительная корреляция между коэффициентом конверсии и соотношением водителей к пассажирам, а также существует сильная положительная корреляция между количеством водителей и скоростью выполнения заказов. рабочий деньи Соотношение водитель/пассажир имеет слабую положительную корреляцию Соотношение водителей и пассажиров положительно связано с количеством заказов, полученных водителями, а фактическое количество водителей в день — это количество водителей в день. заказ весьма актуален. Если вы хотите улучшить; Ставка заказа позволяет максимально увеличить количество изотвечающих водителей.

Цель для этого app Увеличение дохода

Индикатор Полярной звезды; количество заказа,Полный заказ Количество означает прибыль ,

Как улучшить; количество заказа,

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

Полную ставку заказа можно оптимизировать в пространстве

код Язык:javascript
копировать
# каждыйгородкоэффициент конверсии
x_data = data["Город"].drop_duplicates().to_list()
y_data = data.groupby('Город')['коэффициент конверсии'].mean().apply(
    lambda x: round(x, 2)).to_list()
bar = Bar()
bar.add_xaxis(x_data)
bar.add_yaxis("каждыйгородкоэффициент конверсии", y_data)
bar.render_notebook()

BC Городкоэффициент конверсиилучше ADE Городкоэффициент конверсиииметьпродвигатькосмос

код Язык:javascript
копировать
# каждыйшагкоэффициент конверсии
funnel_data = data.copy(deep=True)
# пузырь->вызовкоэффициент конверсии
rate = ( data['вызовчисло'] / data['Количество пузырьков'] )
funnel_data.insert(4, "риск->вызов",rate, allow_duplicates=False)
# вызов->отвечатькоэффициент конверсии
rate = ( data['отвечатьчисло'] / data['вызовчисло'] )
funnel_data.insert(6, "вызов->отвечать",rate, allow_duplicates=False)
# отвечать->Полный заказкоэффициент конверсии
rate = ( data['Полный заказчисло'] / data['отвечатьчисло'] )
funnel_data.insert(8, "отвечать->над",rate, allow_duplicates=False)
funnel_data
код Язык:javascript
копировать
# Функция преобразования воронкообразной диаграммы Агород
def funnel_show(funnel_data, city_name):
    change_df = data[data['Город'] == city_name][[
        'Количество пузырьков','вызовчисло','отвечатьчисло','Полный заказчисло']].sum()    change_data = [
        list(z) for z in zip(
            change_df.index.tolist(),
            change_df.values.tolist())]
    change_rate = funnel_data[funnel_data['Город'] ==
                              city_name][['риск->вызов', 'вызов->отвечать', 'отвечать->над']].mean()
    funnel_value = change_rate.values.tolist()
    funnel_value.insert(0, 1)
    attr_trans = [
        change_df.index.tolist()[i]+"-"+"%.2f%%" %
        (funnel_value[i]*100) for i in range(4)]
    funnel = (
        Funnel()
        .add("процесс", [list(z) for z in zip(attr_trans, change_df)],
             label_opts=opts.LabelOpts(
            font_size=13, position="right", formatter="{b}-{c}"),
            tooltip_opts=opts.TooltipOpts(trigger='item',
                                          formatter="{a} <br/>{b} : {c}",
                                          background_color="#ffd1df",
                                          border_color="#ffffd4",
                                          border_width=4,
                                          textstyle_opts=opts.TextStyleOpts(font_size=14, color='blue'),))
        .set_global_opts(title_opts=opts.TitleOpts(title=city_name+"Воронкообразная диаграмма конверсии"))
    )
    return funnel


funnel_show(funnel_data, "Aгород").render_notebook()
код Язык:javascript
копировать
funnel_show(funnel_data, "Bгород").render_notebook()
код Язык:javascript
копировать
funnel_show(funnel_data, "Cгород").render_notebook()
код Язык:javascript
копировать
funnel_show(funnel_data, "Dгород").render_notebook()
код Язык:javascript
копировать
funnel_show(funnel_data, "Eгород").render_notebook()
код Язык:javascript
копировать
# каждый Городсоотношение водитель/пассажир
x_data = data["Город"].drop_duplicates().to_list()
y_data = data.groupby('Город')['соотношение водитель/пассажир'].mean().apply(
    lambda x: round(x, 2)).to_list()
x_data
y_data
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis('каждыйгородсоотношение водитель/пассажир', y_data)
)
bar.render_notebook()

иллюстрировать C город за водителя Максимальное количество принимаемых заказов в час

код Язык:javascript
копировать
# каждыйгородежедневносоотношение водитель/пассажир
x_data = ['в понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
y1 = data[data['Город'] == 'Aгород'].groupby(
    'Неделя')['соотношение водитель/пассажир'].mean().apply(lambda x: round(x, 2)).to_list()
y2 = data[data['Город'] == 'Bгород'].groupby(
    'Неделя')['соотношение водитель/пассажир'].mean().apply(lambda x: round(x, 2)).to_list()
y3 = data[data['Город'] == 'Cгород'].groupby(
    'Неделя')['соотношение водитель/пассажир'].mean().apply(lambda x: round(x, 2)).to_list()
y4 = data[data['Город'] == 'Dгород'].groupby(
    'Неделя')['соотношение водитель/пассажир'].mean().apply(lambda x: round(x, 2)).to_list()
y5 = data[data['Город'] == 'Eгород'].groupby(
    'Неделя')['соотношение водитель/пассажир'].mean().apply(lambda x: round(x, 2)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород", y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="соотношение водитель/пассажир"))
)
line.render_notebook()

Как видно из рисунка выше: Пятница и воскресенье водитель/пассажирбольшинство,водительиз Принимайте заказы Увеличение количества, С понедельника по воскресенье, С. городизсоотношение водитель/пассажирбольшинство,иллюстрировать C городиз Готовность водителя выполнять заказыидействительный Принимайте заказычислобольшинство,иллюстрироватьоперациииокруг app использоватьколичестволучше

код Язык:javascript
копировать
x_data = ['Количество пузырьков','вызовчисло','отвечатьчисло','Полный заказчисло']
y1 = [round(data[data['Город'] == 'Aгород']['Количество пузырьков'].mean(),
            2),round(data[data['Город'] == 'Aгород']['вызовчисло'].mean(),            2),round(data[data['Город'] == 'Aгород']['отвечатьчисло'].mean(),            2),round(data[data['Город'] == 'Aгород']['Полный заказчисло'].mean(),            2)]
y2 = [round(data[data['Город'] == 'Bгород']['Количество пузырьков'].mean(),
            2),round(data[data['Город'] == 'Bгород']['вызовчисло'].mean(),            2),round(data[data['Город'] == 'Bгород']['отвечатьчисло'].mean(),            2),round(data[data['Город'] == 'Bгород']['Полный заказчисло'].mean(),            2)]
y3 = [round(data[data['Город'] == 'Cгород']['Количество пузырьков'].mean(),
            2),round(data[data['Город'] == 'Cгород']['вызовчисло'].mean(),            2),round(data[data['Город'] == 'Cгород']['отвечатьчисло'].mean(),            2),round(data[data['Город'] == 'Cгород']['отвечатьчисло'].mean(),            2)]
y4 = [round(data[data['Город'] == 'Dгород']['Количество пузырьков'].mean(),
            2),round(data[data['Город'] == 'Dгород']['вызовчисло'].mean(),            2),round(data[data['Город'] == 'Dгород']['отвечатьчисло'].mean(),            2),round(data[data['Город'] == 'Dгород']['Полный заказчисло'].mean(),            2)]
y5 = [round(data[data['Город'] == 'Eгород']['Количество пузырьков'].mean(),
            2),round(data[data['Город'] == 'Eгород']['вызовчисло'].mean(),            2),round(data[data['Город'] == 'Eгород']['отвечатьчисло'].mean(),            2),round(data[data['Город'] == 'Eгород']['Полный заказчисло'].mean(),            2)]
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород", y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="Процесс заказа"))
)
line.render_notebook()

C Город Хотя Количество пузырьковнаименее,новызовчисло、отвечатьчислопрямойприезжать Полный Количество заказов самое большое из

С понедельника по воскресенье, С. городиз Заказчислодабольшинствоиз,но Количество онлайн из водителей却данаименееиз。поэтому,увеличить C Город Водитель из количества. A Хотя в городе больше всего пузырей, но в конечном итоге заказ выполняется в меньших количествах, поэтому A город это самый необходимый фокус наиз Город. с последующим Э, еще раз D。 Больше пузырьков но Полный Отсутствие заказа может быть операционной проблемой, проблемой конкуренции или транспортной проблемой.

код Язык:javascript
копировать
#каждыйгородежедневно Полный заказчислоx_data = ['в понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье']
y1=data[data['Город'] == 'Aгород'].groupby('Неделя')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y2=data[data['Город'] == 'Bгород'].groupby('Неделя')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y3=data[data['Город'] == 'Cгород'].groupby('Неделя')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y4=data[data['Город'] == 'Dгород'].groupby('Неделя')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y5=data[data['Город'] == 'Eгород'].groupby('Неделя')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
line=(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород",y_axis=y1)
    .add_yaxis(series_name="Bгород",y_axis=y2)
    .add_yaxis(series_name="Cгород",y_axis=y3)
    .add_yaxis(series_name="Dгород",y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="каждыйгородежедневно Полный заказчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
#рабочий денькаждыйгородкаждыйпериод времени Полный заказчислоx_data = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']
y1=data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby('период времени')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y2=data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby('период времени')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y3=data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby('период времени')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y4=data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby('период времени')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
y5=data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby('период времени')['Полный заказчисло'].mean().apply(lambda x: round(x,1)).to_list()
line=(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород",y_axis=y1)
    .add_yaxis(series_name="Bгород",y_axis=y2)
    .add_yaxis(series_name="Cгород",y_axis=y3)
    .add_yaxis(series_name="Dгород",y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод времени Полный заказчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
# рабочий денькаждыйгородкаждыйпериод времени Количество пузырьков
x_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Количество пузырьков'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Количество пузырьков'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Количество пузырьков'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Количество пузырьков'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Количество пузырьков'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод времени Количество пузырьков"))
)
line.render_notebook()
код Язык:javascript
копировать
# рабочий денькаждыйгородкаждыйпериод временивызовчислоx_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['вызовчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['вызовчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['вызовчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['вызовчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['вызовчисло'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод временивызовчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
#рабочий денькаждыйгородкаждыйпериод времениотвечатьчисло
x_data = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']
y1=data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby('период времени')['отвечатьчисло'].mean().apply(lambda x: round(x,1)).to_list()
y2=data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby('период времени')['отвечатьчисло'].mean().apply(lambda x: round(x,1)).to_list()
y3=data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby('период времени')['отвечатьчисло'].mean().apply(lambda x: round(x,1)).to_list()
y4=data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby('период времени')['отвечатьчисло'].mean().apply(lambda x: round(x,1)).to_list()
y5=data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby('период времени')['отвечатьчисло'].mean().apply(lambda x: round(x,1)).to_list()
line=(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород",y_axis=y1)
    .add_yaxis(series_name="Bгород",y_axis=y2)
    .add_yaxis(series_name="Cгород",y_axis=y3)
    .add_yaxis(series_name="Dгород",y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод времениотвечатьчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
#рабочий денькаждыйгородкаждыйпериод временикоэффициент конверсии
x_data = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']
y1=data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y2=data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y3=data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y4=data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y5=data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
line=(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород",y_axis=y1)
    .add_yaxis(series_name="Bгород",y_axis=y2)
    .add_yaxis(series_name="Cгород",y_axis=y3)
    .add_yaxis(series_name="Dгород",y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод временикоэффициент конверсии"))
)
line.render_notebook()

Маленький Город BC C город должен быть маленьким 0-4 точка Полный процент заказов низкий Вы можете рассмотреть этот период времени из Количества пузырьков вызовчисло отвечатьчисло Полный заказчисло B город различные периоды времени Полный цены на заказ лучше 0.4

большой Город ADE A город различные периоды времени Полный ставки на заказы ниже иллюстрировать, возможно, не транспортную среду в городе , но это операционная или конкурентная проблема A городсуществовать 9 точка Утренний пик, лучше всего добраться до места 0.37 иллюстрировать A город востребован из D город 0-5 точка Полный заказ имеет лучшую цену Сравниватьдневное время еще лучше, иллюстрировать может быть связано с транспортом. E город различные периоды времени Полный ставки на заказы ниже иллюстрировать, возможно, не транспортную среду в городе , но это операционная или конкурентная проблема

код Язык:javascript
копировать
x_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод времени Водитель онлайнчисло"))
)
line.render_notebook()

C Город Слишком мало водителей ночью может быть увеличеноночьводительиз Задачанадв награду

код Язык:javascript
копировать
# Суббота, воскресенье, каждый день, каждый день времени Полный заказчислоx_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="Суббота и воскресеньекаждыйгородкаждыйпериод времени Полный заказчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
x_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby(
    'период времени')['Водитель онлайн'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="рабочий денькаждыйгородкаждыйпериод времени Водитель онлайнчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
# Суббота, воскресенье, каждый день, каждый день времени Полный заказчислоx_data = [
    '0',
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
    '11',
    '12',
    '13',
    '14',
    '15',
    '16',
    '17',
    '18',
    '19',
    '20',
    '21',
    '22',
    '23']
y1 = data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y2 = data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y3 = data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y4 = data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
y5 = data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 0)].groupby(
    'период времени')['Полный заказчисло'].mean().apply(lambda x: round(x, 1)).to_list()
line = (
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород", y_axis=y1)
    .add_yaxis(series_name="Bгород", y_axis=y2)
    .add_yaxis(series_name="Cгород", y_axis=y3)
    .add_yaxis(series_name="Dгород", y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="Суббота и воскресеньекаждыйгородкаждыйпериод времени Полный заказчисло"))
)
line.render_notebook()
код Язык:javascript
копировать
#суббота и воскресеньекаждыйгородкаждыйпериод временикоэффициент конверсии
x_data = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23']
y1=data[(data['Город'] == 'Aгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y2=data[(data['Город'] == 'Bгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y3=data[(data['Город'] == 'Cгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y4=data[(data['Город'] == 'Dгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
y5=data[(data['Город'] == 'Eгород') & (data['рабочий день'] == 1)].groupby('период времени')['коэффициент конверсии'].mean().apply(lambda x: round(x,2)).to_list()
line=(
    Line()
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(series_name="Aгород",y_axis=y1)
    .add_yaxis(series_name="Bгород",y_axis=y2)
    .add_yaxis(series_name="Cгород",y_axis=y3)
    .add_yaxis(series_name="Dгород",y_axis=y4)
    .add_yaxis(series_name="Eгород",y_axis=y5)
    .set_global_opts(title_opts=opts.TitleOpts(title="Суббота и воскресеньекаждыйгородкаждыйпериод временикоэффициент конверсии"))
)
line.render_notebook()

1-е место – работа Ся Си Краба Хаха.

ссылка:Об онлайн-заказе автомобилей

Введение: Предыстория

🚩 Особенности индустрии онлайн-заказов автомобилей: Онлайн-вызов автомобилей, полное название онлайн-заказа такси, подключается через интернет-платформу. Вместимость (водитель, транспортное средство) и пассажиров,Доступна некруизовая служба такси.из Деловая деятельность。Заинтересованными сторонами в основном являются платформы、водитель、Транспортные средства и потребители повсюду.

🚩 Платформа онлайн-заказа автомобилей:

  1. за счет распределения ресурсов(водительимашина)Достичь баланса между спросом и предложением;
  2. По крайней мере стоимость,Удовлетворение потребностей пассажиров в максимальной степени,Чтобы получить больше преимуществ.

Справочник моделей OSM

Метрики & в заключение

Поэтому из двух измерений [количество] и [качество] мы выбираем следующие Индикаторы данных для наблюдения за текущим состоянием онлайн-операций по вызову такси:

Индикаторы данных

Причины стать ключевым индикатором

иллюстрировать

[Количество] Соотношение пассажиров и водителей

достаточно лиизводительчисломожет удовлетворитьпассажиризнуждаться

=1 Баланс спроса и предложения [идеальное состояние] ;<1 пассажирколичествомного;>1 Водителей много.

【качество】Полный заказ Ставка

Производительность и использование пространства,Прямые отношения: приезжать на платформу из прибыли,Доход платформы = комиссия *Полный заказчисло* Цена за клиента

Полный заказ Ставка = Полный заказчисло / вызовчисло

Обработка данных и мышление

один、Обработка данных

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

2. Обзор данных о рыночных акциях
1. Изменение ключевых показателей по городам

Анализ в заключение:

(1)от【пассажирводитель Сравнивать】Искать:такой жеодин Город,рабочий соответственно, деньивыходные показывают аналогичные изменения, появляются пики и впадины, а время точки часто одинаковое. Поэтому ставьте рабочий деньивыходные комбинированный анализ целесообразен из-за; (2) [Соотношение пассажиров и водителей] и [Полный Нет очевидной корреляции между количеством заказов]; (3)дневное времяи Вечер из【Соотношение пассажиров и водителей】часто также демонстрирует определенную закономерность, обычно в дневное время. время достигает максимального значения приезжать, а ночь достигает минимального значения приезжать; (4)C Среднее [соотношение пассажиров и водителей] в городеиз значительно выше, чем в других городах, или как результат последующего анализа. данныеиз тяжелой точки объекта наблюдения.

2. каждыйэлементиндекскорреляционный анализ

Новыйкаждыйшагизкоэффициент конверсиикак поле анализа,попробуй просмотретькаждыйиндексмеждуиз Актуальность: вызовкоэффициент конверсии = вызовчисло / Количество пузырьков отвечатькоэффициент конверсии = отвечатьчисло / вызовчисло Полный заказкоэффициент конверсии = Полный заказчисло / отвечатьчисло

Анализ в заключение:

(1)период времении Водитель Число онлайн показывает относительно сильную положительную корреляцию, и разумно провести исследование на основе периода времени; (2)Водитель онлайнчислои Количество пузырьков,вызовчисло,отвечатьчислои Полный Число заказов демонстрирует сильную положительную корреляцию, доказывая, что пропускная способность и онлайн-количество играют ключевую роль в том, будет ли транзакция завершена; (3)но,Водитель онлайнчислоивызовкоэффициент конверсии几乎没иметь Актуальность,поэтому Используйте вместе Количество пузырьков Рассчитать запасы на основеизпассажирчислои наблюдатьвызовкоэффициент конверсииизценить Вероятно, нетбольшой,Также провереноиспользоватьвызовчислокак Количество пассажиров онлайнизценить,也可以существовать用户количествомногонокоэффициент конверсии Не высокийиз关键шаг做одиннекоторые маркетинговые акции; (4) Соотношение пассажиров и водителей и Полный заказкоэффициент конверсии,То есть нет никакой корреляции между количеством и качеством.

3. Количественный анализ параметров
1. Сравнение городов
1.1 Рабочие дни и выходные

округточкарабочий деньивыходные,Агрегируйте [соотношение пассажиров и водителей], чтобы рассчитать среднее значение,Получите следующую линейную диаграмму:

Анализ в заключение:

(1) Независимо от того, на какой Город вы смотрите,выходные【Соотношение пассажиров и водителей】значительно увеличилось,По сравнению с количеством пассажиров,Емкостьколичество Немного не хватает。 (2) Среди пяти Городов: *C город【соотношение пассажиров и водителей】рабочий деньивыходныеиз Разницарасстояние Маленький,Но он всегда выше других Городов и подтягивает средний показатель.,ежедневноиз Очень недостаточная пропускная способность;A городи E городиз【соотношение пассажиров и водителей】ниже, рабочий среднее соотношение дней < 1. Количество водителей относительно достаточное, но рабочее; Соотношение деньивыходныеиз [пассажиро-водительское] существенно изменилось, и существующим мощностям трудно выдержать резкий рост числа пассажиров, и они недостаточно стабильны; Для сравнения, с точки зрения количества и стабильности мощности, B городи D Город показал лучшие результаты среди пяти городов. При работе вы можете в первую очередь сосредоточиться В другом городе потяните пять городов, куда приезжать, на горизонтальную линию.

1.2 День против Ночи

Анализ в заключение:

(1) По сравнению с четырьмя другими Городами, D Пропускной способности транспортных средств недостаточно для удовлетворения спроса на поездки. Возможно, большему количеству водителей будет предложено работать в ночное время или разделить их на утреннюю и вечернюю смены. (2) То же, что из, A город E городдневное времяиночьиз Соотношение пассажиров и водителей сильно колеблется, B город D город более стабилен

2. Сравнение внутри городов

Наблюдайте за рыночными данными, которые появляются примерно каждый день. 4-5 пики и минимумы в пределах каждого периода, принимайте ежедневные top5 и Tail5【Соотношение пассажиров и водителей】период времени выполнять статистику, фильтровать статистические значения, превышающие изданные в пять раз:

ежедневно【пассажирводитель Сравнивать】пикпериод времени – Многие пассажиры

ежедневно【пассажирводитель Сравнивать】нижняя точкапериод времени – Многие водители

Анализ в заключение:

Семь дней в неделю, больше пяти дней здесь генерировать пик за определенное время / Минимальная стоимость, иллюстрировать период Проблема измерения времени является универсальной проблемой и требует решения с помощью передовых методов работы. Относительно типичный A городи E город, в утренний час пик и вечерний период каждый день Число пассажиров, использующих автомобили, велико, но количество автомобилей, использующих автомобили, в ранние ночные часы невелико, и многие водители; D С другой стороны, транспортных мощностей недостаточно для удовлетворения спроса на поездки в ранние утренние часы, а утром транспортных мощностей больше, чем спроса на поездки, и распределение неравномерно B город часто бывает там 7.8 точка ознаменовала пик использования автомобилей, и 10 точка Транспортная способность водителя часто бывает самой большой в день, и водитель быстро реагирует на проблему недостаточной транспортной мощности. 。

4. Анализ показателей качества
1. Уровень выполнения заказов в каждом городе

каждый Городиз Полный заказ Ставка基本да恒定из,Видно, что на эффективность пространственного распределения транспортных мощностей количество водителей не влияет.,Сравнивая пять шоу «Город»:

  • Общий B городи D Качество распределения мощности «Городиз» несколько выше, чем у других «Городов»;* C Качество пространственного распределения городов самое низкое, на что может влиять недостаточная транспортная способность приезжать*; но A городи E Количество транспортных мощностей городаиза достаточно, но они не в полной мере используют хорошие транспортные возможности, что делает; процент заказов низкий。
2. Аномальный интервал

каждый Городиз Полный Ставка заказа находится в основном в том же диапазоне, а ставка; Чем больше частота заказов, тем лучше качество, поэтому берите среднее значение. 0.79 изценить,ограниченный【Полный заказ Ставка >=0.79 это здоровый диапазон]. Понаблюдайте, сколько периодов в днях каждого города. временииз Полный Ставка заказа аномальная. интервал Внутри【Полный заказ Ставка < 0,79], какова пропорция, как показано на рисунке ниже:

Отсюда очевидно, что, в частности, A город,выходные Внутри Полный ставки заказов ниже здорового уровня за период время составляет столько же, сколько 70%, в то время как средний показатель ненормален; заказ Ставкапериод интервал времени составляет примерно 40%. С точки зрения качества B городи D Город также относительно стабилен.

5. Постановка проблем и возможные решения

разприезжатьначалоизв В заключение поместите пять городов в четыре сектора передвижения, чтобы наблюдать существующие проблемы. Проблема определяется здесь как набор данных. Из Пять Городов являются стандартными, сначала поставьте пять операций Городиз практически на один уровень, а потом уже дальше думайте, как оптимизировать сервис. С этой точки зрения на данный момент мы можем рассмотреть B город установлен в качестве эталона и поддерживает текущее рабочее состояние из. Самый простой способ начать — это A городи E городе, у них есть достаточная производственная база в качестве гарантии. С Проблема относительно большая и требует тщательного мониторинга. Во время фактической эксплуатации вы можете сначала набрать больше транспортных мощностей для присоединения в качестве основы для работы. Во время эксплуатации сначала наблюдайте за временными характеристиками и фиксируйте их каждую неделю. времяиз Пики и спады прогнозируются заранее, и 1-2h Запланируйте транспортную мощность так, чтобы не было экстремальных значений или выбросов, превышающих средний диапазон.

  • Я чувствую, что все еще могу это сделатьноне сделаноиз:каждый деньизпассажирводитель Сравниватьотбольшинствобольшойценитьразпадатьприезжать < 1(водительчислобольшой Впассажирчисло)извремя,Отражать эффективность оперативного развертывания и развертывания
Ссылки
  1. Онлайн-записьмашиназнание бизнеса:https://iot.ofweek.com/2022-03/ART-132216-8420-30554335_2.html
  2. анализ данныхи Визуализация:https://www.heywhale.com/mw/project/63c295841fb7838bd7d2b0ea

Приложение к коду

1. Просмотр и очистка данных.

код Язык:javascript
копировать
import pandas as pd
import numpy as np
from pyecharts.charts import *
import pyecharts.options as opts
import collections

rawdata = pd.read_csv('./ride-hailing_data.csv',encoding='utf8')
# rawdata.drop(rawdata.columns[[-1,-2]], axis=1, inplace=True) # Удалить последние два столбца грязных данных
rawdata
код Язык:javascript
копировать
rawdata.describe().T
код Язык:javascript
копировать
# Вычислить статистические характеристики дискретных переменных (по умолчанию вычисляются числовые типы) — передать «все» и поместить в таблицу.
rawdata.describe(include=['O']).T  #пять Город,каждый Городкаждый Неделя,данные запускаются каждый час,5*7*24=840 строк
код Язык:javascript
копировать
# Добавить новое поле анализа
rawdata['соотношение пассажиров и водителей']=rawdata['вызовномер']/rawdata['Водитель онлайн']
rawdata['Полный заказ Ставка']=rawdata['Полный заказчисло']/rawdata['вызовчисло']
rawdata

2. Нарисуйте и просмотрите ежедневные тенденции спроса и предложения онлайн-заказов на такси в городе.

код Язык:javascript
копировать
import matplotlib.pyplot as plt
import numpy as np
#Просмотрите доступные шрифты в системе и найдите приезжать, похожий на китайский шрифт.
from matplotlib.font_manager import FontManager
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print (mat_fonts)

Результат:

{‘Segoe Script’, ‘Script MT Bold’, ‘Sylfaen’, ‘Microsoft NeoGothic’, ‘Perpetua Titling MT’, ‘Tw Cen MT’, ‘DejaVu Sans Display’, ‘Consolas’, ‘Lucida Fax’, ‘DIN Next LT Pro’, ‘STXingkai’, ‘MingLiU-ExtB’, ‘Segoe Print’, ‘Oswald’, ‘Showcard Gothic’, ‘Montserrat’, ‘Rage Italic’, ‘KaiTi’, ‘SimSun-ExtB’, ‘Eras Light ITC’, ‘Informal Roman’, ‘Jokerman’, ‘Old English Text MT’, ‘Century Gothic’, ‘Times New Roman’, ‘DejaVu Serif Display’, ‘Lucida Sans Unicode’, ‘Javanese Text’, ‘STIXSizeFiveSym’, ‘Gill Sans MT Condensed’, ‘FangSong’, ‘STXinwei’, ‘Mongolian Baiti’, ‘Tempus Sans ITC’, ‘Haettenschweiler’, ‘STIXSizeTwoSym’, ‘jdIcoMoonFree’, ‘Niagara Engraved’, ‘Papyrus’, ‘Magneto’, ‘Roboto Condensed’, ‘STXihei’, ‘Bodoni MT’, ‘Microsoft PhagsPa’, ‘Harlow Solid Italic’, ‘MS Mincho’, ‘SimHei’, ‘Snap ITC’, ‘Lucida Calligraphy’, ‘MT Extra’, ‘Tw Cen MT Condensed Extra Bold’, ‘Raleway’, ‘Arvo’, ‘jdIcoFont’, ‘jdiconfontB’, ‘Arial’, ‘Lobster’, ‘Mistral’, ‘cmmi10’, ‘Algerian’, ‘Curlz MT’, ‘Playbill’, ‘Bahnschrift’, ‘jdiconfontD’, ‘Wingdings’, ‘Kunstler Script’, ‘Century’, ‘Gill Sans Ultra Bold Condensed’, ‘Britannic Bold’, ‘Corbel’, ‘Goudy Stout’, ‘Arial Unicode MS’, ‘STSong’, ‘icomoon’, ‘Microsoft MHei’, ‘MV Boli’, ‘Vladimir Script’, ‘Cooper Black’, ‘cmsy10’, ‘Imprint MT Shadow’, ‘STIXSizeFourSym’, ‘Copperplate Gothic Light’, ‘STKaiti’, ‘jdFontCustom’, ‘Bell MT’, ‘Roboto’, ‘Franklin Gothic Medium Cond’, ‘Calibri’, ‘Courier New’, ‘Ravie’, ‘Gigi’, ‘Yu Gothic’, ‘Franklin Gothic Demi’, ‘cmss10’, ‘Segoe UI Emoji’, ‘Franklin Gothic Medium’, ‘Stencil’, ‘Elephant’, ‘jdFontAwesome’, ‘Gloucester MT Extra Condensed’, ‘Californian FB’, ‘Gadugi’, ‘Segoe UI Symbol’, ‘Juice ITC’, ‘Webdings’, ‘SimSun’, ‘Constantia’, ‘Poor Richard’, ‘Gill Sans MT Ext Condensed Bold’, ‘STHupo’, ‘cmb10’, ‘Parchment’, ‘STFangsong’, ‘Modern No. 20’, ‘MS Outlook’, ‘Tahoma’, ‘Eras Medium ITC’, ‘FZShuTi’, ‘Forte’, ‘Leelawadee UI’, ‘High Tower Text’, ‘STCaiyun’, ‘Segoe UI Historic’, ‘Malgun Gothic’, ‘Segoe UI’, ‘Lato’, ‘Perpetua’, ‘DejaVu Sans’, ‘Trebuchet MS’, ‘STIXNonUnicode’, ‘DejaVu Serif’, ‘Lucida Handwriting’, ‘Segoe MDL2 Assets’, ‘Georgia’, ‘Indie Flower’, ‘Nirmala UI’, ‘Chiller’, ‘Harrington’, ‘Verdana’, ‘FZLanTingHeiS-UL-GB’, ‘Matura MT Script Capitals’, ‘Colonna MT’, ‘Berlin Sans FB Demi’, ‘STZhongsong’, ‘Maiandra GD’, ‘Blackadder ITC’, ‘FZCuHeiSongS-B-GB’, ‘Bernard MT Condensed’, ‘Microsoft JhengHei’, ‘OCR A Extended’, ‘Wingdings 2’, ‘Candara’, ‘Berlin Sans FB’, ‘Comic Sans MS’, ‘Segoe WP’, ‘Bauhaus 93’, ‘Bradley Hand ITC’, ‘Century Schoolbook’, ‘French Script MT’, ‘Gill Sans Ultra Bold’, ‘jdiconfontC’, ‘Droid Serif’, ‘MS Gothic’, ‘Lucida Sans’, ‘Microsoft Tai Le’, ‘Gabriola’, ‘Rockwell Extra Bold’, ‘Broadway’, ‘Myanmar Text’, ‘Microsoft Sans Serif’, ‘Lucida Console’, ‘Brush Script MT’, ‘Niagara Solid’, ‘FZYaoTi’, ‘Garamond’, ‘DengXian’, ‘BPG Glaho’, ‘Franklin Gothic Heavy’, ‘STIXSizeThreeSym’, ‘Calisto MT’, ‘Vivaldi’, ‘Agency FB’, ‘STIXSizeOneSym’, ‘Lucida Sans Typewriter’, ‘Rockwell’, ‘DejaVu Sans Mono’, ‘Gill Sans MT’, ‘Monotype Corsiva’, ‘NumberOnly’, ‘Felix Titling’, ‘Dosis’, ‘cmtt10’, ‘Eras Demi ITC’, ‘Edwardian Script ITC’, ‘Microsoft New Tai Lue’, ‘Engravers MT’, ‘Microsoft Himalaya’, ‘Onyx’, ‘Baskerville Old Face’, ‘Marlett’, ‘Copperplate Gothic Bold’, ‘Wingdings 3’, ‘cmr10’, ‘Source Sans Pro’, ‘Tw Cen MT Condensed’, ‘Centaur’, ‘Lucida Bright’, ‘Microsoft YaHei’, ‘Rockwell Condensed’, ‘Eras Bold ITC’, ‘Poiret One’, ‘Impact’, ‘LiSu’, ‘Symbol’, ‘Franklin Gothic Book’, ‘Palatino Linotype’, ‘Ink Free’, ‘Roboto Slab’, ‘Pristina’, ‘Arial Rounded MT Bold’, ‘Ebrima’, ‘HoloLens MDL2 Assets’, ‘Viner Hand ITC’, ‘Sitka Small’, ‘Goudy Old Style’, ‘Castellar’, ‘JdIonicons’, ‘Microsoft Yi Baiti’, ‘Palace Script MT’, ‘Wide Latin’, ‘YouYuan’, ‘Franklin Gothic Demi Cond’, ‘jdiconfontA’, ‘Book Antiqua’, ‘Open Sans’, ‘Footlight MT Light’, ‘STLiti’, ‘DejaVu Math TeX Gyre’, ‘STIXGeneral’, ‘Kristen ITC’, ‘cmex10’, ‘Freestyle Script’, ‘Cambria’, ‘Bookman Old Style’}

код Язык:javascript
копировать
d=['Aгород','Bгород','Cгород','Dгород','Eгород']
dd=['в понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье',]

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"]=False #Нормальное отображение отрицательного знака
plt.figure(figsize = (18,9),dpi = 200)#dpi четкость изображения

k=1
for i in range(5):
    for j in range(7):
        test=rawdata[(rawdata['Город']==d[i])&(rawdata['Неделя']==dd[j])]
        plt.subplot(5,7,k,frameon = False)
        plt.plot(test['период времени'],test['соотношение пассажиров и водителей'])
        plt.plot(test['период времени'],test['Полный заказ Ставка'])        #plt.yticks=(np.arange(0,5))

        if (k-1)%7==0: #поделитесь набором меток осей
            plt.ylabel(d[i]+'коэффициент пассажиро-водителя')
        if k>28:
            plt.xlabel(dd[j])
        if ((k-1)%7!=0 and k<=28) or k in (1,8,15,22):
            ax = plt.gca()
            ax.axes.xaxis.set_ticklabels([]) #Скрыть метки оси X
            ax.axes.xaxis.set_ticks([]) #Скрыть масштаб по оси X
         #   plt.xticks=(np.arange(0,24),rotation=90)

        c=np.mean(test['соотношение пассажиров и водителей']) #Добавляем среднюю линию
        plt.axhline(y=c,color="red", linestyle='--', label=c)

        k+=1 #позиционирование местоположения

        #Цикл для отметки максимального значения и минимального значения бита точки каждого изображения.
        y1_min=np.argmin(np.array(test['Соотношение пассажиров и водителей']))
        y1_max=np.argmax(np.array(test['Соотношение пассажиров и водителей']))
        show_min='['+str(y1_min)+','+str(round(float(test[test['период времени']==y1_min]['Соотношение пассажиров и водителей']),4))+']' 
        show_max='['+str(y1_max)+','+str(round(float(test[test['период времени']==y1_max]['Соотношение водителей-пассажиров']),4))+']'
        # ●рисовать максимальную точку и минимальную позицию точки.
        plt.plot(y1_min,test[test['период времени']==y1_min]['коэффициент пассажиро-водителя'],'ko') 
        plt.plot(y1_max,test[test['период времени']==y1_max]['коэффициент пассажиро-водителя'],'ko') 
        plt.annotate(show_min,xy=(y1_min,test[test['период времени']==y1_min]['Соотношение водителей-пассажиров']),xytext=(y1_min+0.5,test[test['период времени']==y1_min]['Соотношение водителей-пассажиров']))
        plt.annotate(show_max,xy=(y1_max,test[test['период времени']==y1_max]['коэффициент пассажиро-водителей']),xytext=(y1_max+0.5,test[test['период времени']==y1_max]['Соотношение водителей-пассажиров']))
        #Axes.annotate(s, xy, *args, **kwargs)
        ## s: Текст и содержание аннотации.
        ## xy: аннотированная точка координат, двумерный кортеж в форме (x, y).
        ## xytext: текст аннотации из точки координат, также двумерный кортеж, значение по умолчанию такое же.
# plt.savefig('sinc_2.png', c = 'c')
plt.show()

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

код Язык:javascript
копировать
print('Город','     Полный средняя ставка заказа     ','    рабочий день Полный заказ Ставка    ','   выходные Полный заказ Ставка  ')
print('-------------------------------------------------------------------')
for i in d:
    print(i,rawdata[(rawdata['Город']==i)]['Полный заказ Ставка'].mean(),rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['Полный заказ Ставка'].mean(),rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['Полный заказ Ставка'].mean())

Результат:

соотношение пассажиров и водителей на выходныхбудет высокимодиннекоторый,Пять общих характеристик Городиз

код Язык:javascript
копировать
print('Город','    Среднее соотношение пассажиров и водителей  ','  рабочий день Соотношение пассажиров и водителей  ',' соотношение пассажиров и водителей на выходных ')
print('-------------------------------------------------------------------')
for i in d:
    print(i,rawdata[(rawdata['Город']==i)]['Соотношение пассажиров и водителей'].mean(),rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['пассажирводитель Сравнивать'].mean(),rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['пассажирводитель Сравнивать'].mean())

Результат:

(1) Количество
1. Сравнение городов
код Язык:javascript
копировать
xxx='Соотношение пассажиров и водителей'
c = (
    Line(
        init_opts=opts.InitOpts(
            theme='infographic',
            width=1500,
        )
    )
    .add_xaxis([i for i in rawdata['Город'].unique()])
    .add_yaxis(
        xxx+"рабочий день", 
        [rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['пассажирводитель Сравнивать'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .add_yaxis(
        xxx+"выходные", 
        [rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['пассажирводитель Сравнивать'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
            ),)
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value}Юань", ),интервал=100
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='каждый Город'+xxx,            pos_left='center'
            ),
        xaxis_opts=opts.AxisOpts(
            #name='Диапазон рейтинга продаж',
            splitline_opts=opts.SplitLineOpts(is_show=True),
            axislabel_opts=opts.LabelOpts(rotate=-25),
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True,),
            is_scale=False,
            boundary_gap=False,
        ),
        yaxis_opts=opts.AxisOpts(
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name=xxx
        ),
        legend_opts=opts.LegendOpts(pos_top='5%')
        #datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(
        #    type_="inside",
        #   pos_bottom=0,
        #    )],
    )
)
c.render_notebook()

Результат:

2. Сравнение внутри городов: На сколько часов превышает стандартный диапазон

Диапазон здорового соотношения количества пассажиров и водителей: на основе A городи E город настроен на [0.8,1.2] Сколько времени каждый человек проводит в [зоне здоровья] каждый день? Какой процент всего дня занят?

код Язык:javascript
копировать
fixedmin=rawdata[(rawdata['Город']=='Aгород')&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['пассажирводитель Сравнивать'].mean()
fixedmax=rawdata[(rawdata['Город']=='Aгород')&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['пассажирводитель Сравнивать'].mean()
fixedmax # 1.1730602582717495
код Язык:javascript
копировать
[rawdata[(rawdata['Город'] == i)&(rawdata['пассажирводитель Сравнивать'].between(0.8,1.2))]['период времени'].count()/168 for i in rawdata['Город'].unique()]

[0.5714285714285714, 0.6428571428571429, 0.06547619047619048, 0.5297619047619048, 0.4642857142857143]

код Язык:javascript
копировать
[rawdata[(rawdata['Город'] == i)&(rawdata['пассажирводитель Сравнивать'].between(0.8,1.2))&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['период времени'].count()/120 for i in rawdata['Город'].unique()]

[0.6833333333333333, 0.7333333333333333, 0.058333333333333334, 0.65, 0.55]

код Язык:javascript
копировать
[rawdata[(rawdata['Город'] == i)&(rawdata['пассажирводитель Сравнивать'].between(0.8,1.2))&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['период времени'].count()/48 for i in rawdata['Город'].unique()]

[0.2916666666666667, 0.4166666666666667, 0.08333333333333333, 0.22916666666666666, 0.25]

код Язык:javascript
копировать
xxx='здоровыйпассажирводитель Сравниватьокругмежду'
c = (
    Line(
        init_opts=opts.InitOpts(
            theme='infographic',
            width=1500,
        )
    )
    .add_xaxis([i for i in rawdata['Город'].unique()])
    .add_yaxis(
        xxx+"рабочий день", 
        ['%.3f' % (rawdata[(rawdata['Город'] == i)&(rawdata['пассажирводитель Сравнивать'].between(0.8,1.2))&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['период времени'].count()/120) for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .add_yaxis(
        xxx+"выходные", 
        ['%.3f' % (rawdata[(rawdata['Город'] == i)&(rawdata['пассажирводитель Сравнивать'].between(0.8,1.2))&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['период времени'].count()/48) for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
            ),)
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value}Юань", ),интервал=100
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='каждый Город'+xxx,            pos_left='center'
            ),
        xaxis_opts=opts.AxisOpts(
            #name='Диапазон рейтинга продаж',
            splitline_opts=opts.SplitLineOpts(is_show=True),
            axislabel_opts=opts.LabelOpts(rotate=-25),
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True,),
            is_scale=False,
            boundary_gap=False,
        ),
        yaxis_opts=opts.AxisOpts(
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name=xxx
        ),
        legend_opts=opts.LegendOpts(pos_top='5%')
        #datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(
        #    type_="inside",
        #   pos_bottom=0,
        #    )],
    )
)
c.render_notebook()
3. Сравнение дня и ночи
код Язык:javascript
копировать
[k for k in range(7,19)]
код Язык:javascript
копировать
# дневное время:7-19  Вечер: 0-6 + 20-24
xxx='Соотношение пассажиров и водителей'
c = (
    Line(
        init_opts=opts.InitOpts(
            theme='infographic',
            width=1500,
        )
    )
    .add_xaxis([i for i in rawdata['Город'].unique()])
    .add_yaxis(
        xxx+"дневное время", 
        [rawdata[(rawdata['Город']==i)&(rawdata['период времени'].isin([k for k in range(7,20)]))]['Соотношение пассажиров и водителей'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .add_yaxis(
        xxx+"ночь", 
        [rawdata[(rawdata['Город']==i)&(rawdata['период времени'].isin([0,1,2,3,4,5,6,20,21,22,23,24]))]['Соотношение пассажиров и водителей'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
            ),)
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value}Юань", ),интервал=100
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='каждый Город'+xxx,            pos_left='center'
            ),
        xaxis_opts=opts.AxisOpts(
            #name='Диапазон рейтинга продаж',
            splitline_opts=opts.SplitLineOpts(is_show=True),
            axislabel_opts=opts.LabelOpts(rotate=-25),
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True,),
            is_scale=False,
            boundary_gap=False,
        ),
        yaxis_opts=opts.AxisOpts(
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name=xxx
        ),
        legend_opts=opts.LegendOpts(pos_top='5%')
        #datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(
        #    type_="inside",
        #   pos_bottom=0,
        #    )],
    )
)
c.render_notebook()
4. Верхний N/хвост N в городе
код Язык:javascript
копировать
df_tail=rawdata.groupby(['Город','Неделя']).apply(lambda x: x.sort_values('коэффициент пассажиро-водителя').head(5)).reset_index(drop=True)

df1=pd.DataFrame(df_tail[df_tail['Город']=='Aгород']['период времени'].value_counts()).reset_index()
df1.rename(columns={'index':'hour','период времени':'Количество статистики'},inplace=True)
df1['Город']='Aгород'

for i in d[1:]:
    df_tt=pd.DataFrame(df_tail[df_tail['Город']==i]['период времени'].value_counts()).reset_index()
    df_tt.rename(columns={'index':'hour','период времени':'Количество статистики'},inplace=True)
    df_tt['Город']=i
    df1=df1.append(df_tt,ignore_index=True)

df1['h/t']='tail'
df1=df1[df1['Статистикачисло']>=5]
df1
код Язык:javascript
копировать
df1.reset_index(drop=True)
код Язык:javascript
копировать
df_head=rawdata.groupby(['Город','Неделя']).apply(lambda x: x.sort_values('коэффициент пассажиро-водителя').tail(5)).reset_index(drop=True)

df2=pd.DataFrame(df_head[df_head['Город']=='Aгород']['период времени'].value_counts()).reset_index()
df2.rename(columns={'index':'hour','период времени':'Количество статистики'},inplace=True)
df2['Город']='Aгород'

for i in d[1:]:
    df_tt=pd.DataFrame(df_head[df_head['Город']==i]['период времени'].value_counts()).reset_index()
    df_tt.rename(columns={'index':'hour','период времени':'Количество статистики'},inplace=True)
    df_tt['Город']=i
    df2=df2.append(df_tt,ignore_index=True)

df2['h/t']='head'
df2=df2[df2['Статистикачисло']>=5]
код Язык:javascript
копировать
df2.reset_index(drop=True)
код Язык:javascript
копировать
df_head=rawdata.groupby(['Город','Неделя']).apply(lambda x: x.sort_values('коэффициент пассажиро-водителя').tail(5)).reset_index(drop=True)
df_head[df_head['Город']=='Eгород']['период времени'].value_counts()
(2) Качество
код Язык:javascript
копировать
print('Неделя','      неделя Полный заказ Ставка   ','       Еженедельное соотношение пассажиров и водителей')
print('-----------------------------------------------')
for j in dd:
    print(j,rawdata[(rawdata['Неделя']==j)]['Полный заказ Ставка'].mean(),rawdata[(rawdata['Неделя']==j)]['пассажирводитель Сравнивать'].mean())
код Язык:javascript
копировать
xxx='Полный заказ Ставка'
c = (
    Line(
        init_opts=opts.InitOpts(
            theme='infographic',
            width=1500,
        )
    )
    .add_xaxis([i for i in rawdata['Город'].unique()])
    .add_yaxis(
        xxx+"рабочий день", 
        [rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['Полный заказ Ставка'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .add_yaxis(
        xxx+"выходные", 
        [rawdata[(rawdata['Город']==i)&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['Полный заказ Ставка'].mean() for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
            ),)
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value}Юань", ),интервал=100
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='каждый Город'+xxx,            pos_left='center'
            ),
        xaxis_opts=opts.AxisOpts(
            #name='Диапазон рейтинга продаж',
            splitline_opts=opts.SplitLineOpts(is_show=True),
            axislabel_opts=opts.LabelOpts(rotate=-25),
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True,),
            is_scale=False,
            boundary_gap=False,
        ),
        yaxis_opts=opts.AxisOpts(
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name=xxx
        ),
        legend_opts=opts.LegendOpts(pos_top='5%')
        #datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(
        #    type_="inside",
        #   pos_bottom=0,
        #    )],
    )
)
c.render_notebook()
код Язык:javascript
копировать
xxx='аномальный Полный заказ интервала ставок'
c = (
    Line(
        init_opts=opts.InitOpts(
            theme='infographic',
            width=1500,
        )
    )
    .add_xaxis([i for i in rawdata['Город'].unique()])
    .add_yaxis(
        xxx+"рабочий день", 
        ['%.3f' % (rawdata[(rawdata['Город'] == i)&(rawdata['Полный заказ Ставка']<0.79)&(rawdata['Неделя'].isin(['в понедельник','Вторник','Среда','Четверг','Пятница']))]['период времени'].count()/120) for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .add_yaxis(
        xxx+"выходные", 
        ['%.3f' % (rawdata[(rawdata['Город'] == i)&(rawdata['Полный заказ Ставка']<0.79)&(rawdata['Неделя'].isin(['Суббота','Воскресенье']))]['период времени'].count()/48) for i in rawdata['Город'].unique()], 
        is_smooth=True,
        markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
    .set_series_opts(
        label_opts=opts.LabelOpts(
            is_show=False
            ),)
    .extend_axis(
        yaxis=opts.AxisOpts(
            axislabel_opts=opts.LabelOpts(formatter="{value}Юань", ),интервал=100
        )
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='каждый Город'+xxx,            pos_left='center'
            ),
        xaxis_opts=opts.AxisOpts(
            #name='Диапазон рейтинга продаж',
            splitline_opts=opts.SplitLineOpts(is_show=True),
            axislabel_opts=opts.LabelOpts(rotate=-25),
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True,),
            is_scale=False,
            boundary_gap=False,
        ),
        yaxis_opts=opts.AxisOpts(
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name=xxx
        ),
        legend_opts=opts.LegendOpts(pos_top='5%')
        #datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(
        #    type_="inside",
        #   pos_bottom=0,
        #    )],
    )
)
c.render_notebook()

3. Узнайте трехэтапный коэффициент конверсии и посмотрите

1. Расчет коэффициента конверсии
код Язык:javascript
копировать
# Добавить новое поле анализа
rawdata['вызовкоэффициент конверсии']=rawdata['вызовчисло']/rawdata['Количество пузырьков']
rawdata['отвечатькоэффициент конверсии']=rawdata['отвечатьчисло']/rawdata['вызовчисло']
rawdata['Полный заказкоэффициент конверсии']=rawdata['Полный заказчисло']/rawdata['отвечатьчисло']
rawdata
код Язык:javascript
копировать
rawdata[(rawdata['отвечатькоэффициент конверсии']<rawdata['вызовкоэффициент конверсии'])]
код Язык:javascript
копировать
# Данные об исключении: посмотрите, на каком этапе преобразования возникла проблема.
rawdata[(rawdata['Полный заказкоэффициент конверсии']-rawdata['отвечатькоэффициент конверсии'])<-0.3] #270 наоборот 600
код Язык:javascript
копировать
rawdata['Полный заказкоэффициент конверсии'].mean()
# 0.8662754886794329
код Язык:javascript
копировать
rawdata[rawdata['Полный заказкоэффициент конверсии']<0.6]
код Язык:javascript
копировать
import pandas as pd
import numpy as np
from pyecharts.charts import *
import pyecharts.options as opts
import collections
col=['Неделя','период времени','Водитель онлайн','Количество пузырьков','вызовчисло','отвечатьчисло','Полный заказчисло','вызовкоэффициент конверсии','отвечатькоэффициент конверсии','Полный заказкоэффициент конверсии','пассажирводитель Сравнивать']
rawdata_cor=rawdata[col]
# Сопоставить числовой тип
name_to_week = {
  'в понедельник': 1, «Вторник»: 2, «Среда»: 3, «Четверг»: 4, «Пятница»: 5, «Суббота»: 6, «Воскресенье»: 7
}
# rawdata_cor['Неделя']=rawdata_cor['Неделя'].map(name_to_week)
rawdata_cor.loc[:,'Неделя']=rawdata_cor.loc[:,'Неделя'].map(name_to_week) # Было бы лучше так

rawdata_cor
код Язык:javascript
копировать
dff_corr=rawdata_cor.corr()
rows = dff_corr.index.size
cols = dff_corr.columns.size

# Требуется тепловая картаданные
dff_corr_heatmap = [[i, j, round(float(dff_corr.iloc[i, j]), 3)] for i in range(rows) for j in range(cols)]
c = (
    HeatMap(
        init_opts=opts.InitOpts(
            width='1000px',
        )
    )
        .add_xaxis(dff_corr.index.tolist())
        .add_yaxis(
        'Коэффициент корреляции',
        dff_corr.columns.tolist(),
        dff_corr_heatmap,
        label_opts=opts.LabelOpts(
            is_show=True,
             position='inside'
             ),
    )
        .set_global_opts(
        title_opts=opts.TitleOpts(
            title='Тепловая карта коэффициента корреляции',
            subtitle='Онлайн-сервисы по вызову автомобилей временииндексданные',            pos_left='center'),
        legend_opts=opts.LegendOpts(
            is_show=False,
        ),
        xaxis_opts=opts.AxisOpts(
            type_='category',
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True,
                areastyle_opts=opts.AreaStyleOpts(
                    opacity=1
                )
            ),
            axislabel_opts=opts.LabelOpts(
                font_size=14,
                rotate=-25,
            ),
            interval=0
        ),
        yaxis_opts=opts.AxisOpts(
            name='',
            type_='category',
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True,
                areastyle_opts=opts.AreaStyleOpts(
                    opacity=1
                )
            ),
            axislabel_opts=opts.LabelOpts(
                font_size=14
            ),
            interval=0,
            # position='right'
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=-1,
            max_=1,
            # is_show=False,
        )
    )
)
c.render_notebook()
2. Скорость падения с высшей точки
код Язык:javascript
копировать
rawdata[(rawdata['Город']=='Eгород')&(rawdata['Полный заказкоэффициент конверсии']>0.9)]['пассажирводитель Сравнивать'].describe()

считать 67.000000 среднее 0,982520 стандартный 0,304556 мин 0,472162 25% 0,744118 50% 1,017183 75% 1,194638 максимум 1,759997 Название: соотношение пассажиров и водителей, dtype: float64

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.