Подробное объяснение рабочего процесса визуального анализа данных в Python

Эта статья опубликована Лемони Хугом в облачном сообществе Huawei « Комплексное руководство по визуальному анализу данных Python от сбора данных до аналитического обнаружения ».

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

1. Сбор данных

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

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

# Загрузить данные из CSV-файла
данные = pd.read_csv('data.csv')

# Просмотр первых нескольких строк данных
печать(data.head())

2. Очистка и предварительная обработка данных

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

импортировать matplotlib.pyplot как plt
импортировать seaborn как sns

# Рисуем гистограмму
plt.hist(данные['column_name'], bins=20)
plt.title('Распределение имя_столбца')
plt.xlabel('Значение')
plt.ylabel('Частота')
plt.show()

# Нарисуйте диаграмму рассеяния
sns.scatterplot(x='столбец1', y='столбец2', данные=данные)
plt.title('Точечная диаграмма столбца1 и столбца2')
plt.show()

3. Анализ данных и моделирование

После очистки и предварительной обработки данных мы обычно выполняем анализ и моделирование данных. Это может включать такие методы, как статистический анализ и машинное обучение. На этом этапе визуализация может помочь нам лучше понять взаимосвязи между данными и оценить производительность модели. Например, использование seaborn для построения корреляционной матрицы может помочь нам понять корреляцию между объектами:

# Рисуем корреляционную матрицу
корреляция_матрица = data.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Матрица корреляции')
plt.show()

4. Представление результатов и обнаружение идей

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

импортироватьplotly.express как px

# Создайте интерактивную диаграмму рассеяния
fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info'])
рис.шоу()

5. Передовые методы и оптимизация

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

5.1 Настройка диаграмм с помощью Plotly Express

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

импортироватьplotly.express как px
импортируйтеplotly.graph_objects как идти

#Создаем точечную диаграмму
fig = px.scatter(data, x='column1', y='column2', color='category', hover_data=['additional_info'])

# добавить заметки
fig.add_annotation(x=5, y=5, text="Важный момент", showarrow=True, стрелка=1)

#Настраиваем стиль диаграммы
fig.update_traces(marker=dict(size=10, line=dict(width=2, color='DarkSlateGrey')), selector=dict(mode='markers'))

рис.шоу()

5.2 Визуальное взаимодействие с использованием Interact

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

из ipywidgets импортировать взаимодействие

@interact(column='column1', bins=(5, 20, 1))
Защитуplot_histogram (столбец, ячейки):
    plt.hist(данные[столбец], ячейки=ячейки)
    plt.title(f'Распределение {столбца}')
    plt.xlabel('Значение')
    plt.ylabel('Частота')
    plt.show()

5.3 Использование расширений библиотеки визуализации

Помимо распространенных библиотек визуализации, таких как matplotlib, seaborn и Plotly, существует множество других библиотек визуализации, которые могут расширить наш набор инструментов. Например, такие библиотеки, как Altair и Bokeh, предоставляют диаграммы с разными стилями и функциями, и вы можете выбрать подходящий инструмент в соответствии со своими потребностями.

импортировать Альтаир как альтернативный вариант

alt.Chart(data).mark_bar().encode(
    х = 'категория',
    у = 'счет ()'
).интерактив()

6. Автоматизация и пакетная обработка

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

6.1 Пакетная обработка данных с помощью циклов

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

импортируйте нас

data_files = os.listdir('data_folder')

результаты = []

для файла в data_files:
    данные = pd.read_csv(os.path.join('data_folder', файл))
    # Выполнение операций анализа данных
    # ...
    результаты.append(результат)

6.2 Использование функций для инкапсуляции этапов анализа повторяемости

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

защита анализ_данных (данные):
    # Очистка и предварительная обработка данных
    # ...
    #Анализ данных и моделирование
    # ...
    #Отображение результатов и обнаружение информации
    # ...
    возвращать информацию

#Применяем функцию к каждому набору данных
результаты = [analyze_data(data) для данных в data_sets]

6.3 Использование Dask или Apache Spark для реализации распределенных вычислений

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

импортировать dask.dataframe как dd

#Создаем Dask DataFrame из нескольких файлов
ddf = dd.read_csv('данные*.csv')

# Параллельное выполнение операций анализа данных
результат = ddf.groupby('столбец').mean().compute()

7. Лучшие практики и предложения по оптимизации

При выполнении визуального анализа данных также есть некоторые рекомендации и предложения по оптимизации, которые могут помочь нам лучше использовать инструменты Python:

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

8. Развертывание и обмен результатами

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

8.1 Создание статических отчетов

Используйте Jupyter Notebook или Jupyter Lab, чтобы легко создавать интерактивные отчеты по анализу данных, сочетающие в себе код, визуализации и пояснительный текст. Эти блокноты можно экспортировать в формат HTML, PDF или Markdown, чтобы поделиться ими с другими.

jupyter nbconvert --to htmlnotebook.ipynb

8.2 Создание интерактивных приложений

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

импортировать тире
импортировать Dash_core_comComponents как dcc
импортировать Dash_html_comComponents как HTML

приложение = тире.Dash(__name__)

# Определить макет
app.layout = html.Div(дети=[
    html.H1(children='Панель анализа данных'),
    dcc.График(
        id='пример-график',
        фигура={
            'данные': [
                {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'Категория 1'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': 'Категория 2'},
            ],
            'макет': {
                'title': 'Гистограмма'
            }
        }
    )
])

если __name__ == '__main__':
    app.run_server(отладка=Истина)

8.3 Интеграция в автоматизированные рабочие процессы

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

из даты и времени импорта даты и времени, timedelta
из импорта воздушного потока DAG
из airflow.operators.python_operator импортировать PythonOperator

# Определить задачи
защита данных_анализ():
    #Код анализа данных
    проходить

#Определить группу обеспечения доступности баз данных
день = ДЕНЬ(
    'data_anaанализ_workflow',
    default_args={
        'владелец': 'воздушный поток',
        'dependents_on_past': Ложь,
        «start_date»: дата-время (2024, 1, 1),
        'email_on_failure': Ложь,
        'email_on_retry': Ложь,
        «Повторные попытки»: 1,
        'retry_delay': timedelta(минут=5),
    },
    Schedule_interval=timedelta(дни=1),
)

# Определить задачи
задача = PythonOperator(
    Task_id = 'data_anaлиз_task',
    python_callable = анализ_данных,
    день = день,
)

9. Безопасность данных и защита конфиденциальности

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

9.1 Шифрование данных и безопасная передача

Убедитесь, что во время передачи и хранения данных используются безопасные алгоритмы шифрования, например использование HTTPS для передачи данных и шифрования для хранения данных. Библиотеки шифрования Python, такие как криптография, могут помочь нам реализовать шифрование и дешифрование данных.

из cryptography.fernet импортировать Fernet

# Генерируем ключ
ключ = Fernet.generate_key()
cipher_suite = Фернет (ключ)

# Зашифровать данные
cipher_text = cipher_suite.encrypt(b"Привет, мир!")

# Расшифровать данные
обычный_текст = cipher_suite.decrypt(cipher_text)

9.2 Контроль доступа к данным и аутентификация

Обеспечьте, чтобы только авторизованные пользователи могли получить доступ к конфиденциальным данным, внедрив механизмы контроля доступа к данным и аутентификации. Вы можете использовать библиотеки аутентификации Python, такие как Flask-Login, Django-Auth и т. д., для реализации аутентификации пользователей и управления разрешениями.

из колбы импорта Flask, запрос, перенаправление, url_for
из flask_login импортировать LoginManager, login_user, current_user, login_required, UserMixin

приложение = Колба(__name__)
логин_менеджер = Менеджер входа()
login_manager.init_app (приложение)

# Модель пользователя
класс Пользователь (UserMixin):
    def __init__(self, id):
        self.id = идентификатор

#Функция обратного вызова для аутентификации пользователя
@login_manager.user_loader
защита load_user (user_id):
    вернуть пользователя (user_id)

# Маршрут входа
@app.route('/login', методы=['POST'])
защита входа():
    user_id = request.form['user_id']
    пользователь = Пользователь (user_id)
    логин_пользователь (пользователь)
    вернуть перенаправление (url_for ('index'))

#Маршруты, для доступа к которым требуется вход в систему
@app.route('/secure')
@login_required
защита secure_page():
    вернуть «Это безопасная страница»

если __name__ == '__main__':
    app.run(отладка=Истина)

9.3 Анонимизация и десенсибилизация

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

от импорта фейкера Faker

фейкер = Фейкер()

# Генерируем виртуальное имя
имя = фейкер.имя()

# Создать фиктивное письмо
электронная почта = faker.email()

# Генерируем виртуальный адрес
адрес = фейкер.адрес()

Подведем итог

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

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

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

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

 

Нажмите, чтобы подписаться и узнать о новых технологиях Huawei Cloud как можно скорее~

 

Старшеклассники создают свой собственный язык программирования с открытым исходным кодом в качестве церемонии совершеннолетия – резкие комментарии пользователей сети: Опираясь на защиту, Apple выпустила чип M4 RustDesk. Внутренние услуги были приостановлены из-за безудержного мошенничества. Юнфэн ушел из Alibaba. В будущем он планирует выпустить независимую игру на платформе Windows Taobao (taobao.com). Возобновить работу по оптимизации веб-версии, место назначения программистов, Visual Studio Code 1.89 выпускает Java 17, наиболее часто используемую версию Java LTS, в Windows 10 есть доля рынка составляет 70%, Windows 11 продолжает снижаться. Open Source Daily | Google поддерживает Hongmeng, чтобы взять на себя управление; Rabbit R1 с открытым исходным кодом поддерживает телефоны Android. Microsoft Haier Electric закрыла открытую платформу;
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/4526289/blog/11105722
рекомендация