Графически выразить тепловую карту с использованием кадра данных pandas

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

У меня есть следующий DataFrame:

df = pd.DataFrame({'country': ['Brazil', 'Argentina', 'Uruguay', 'Brazil', 'Argentina', 'Uruguay', 'Brazil', 'Argentina', 'Uruguay'],
                   'year': [2015, 2015, 2015, 2016, 2016, 2016, 2017, 2017, 2016],
                   'occurrence': ['murder', 'murder', 'rape', 'rape', 'arson', 'arson', 'murder', 'murder', 'arson']})

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

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

Благодарю вас!

plotly.com/python/тепловые карты
DollarAkshay 20.03.2022 19:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

new_df = df.groupby(["country","year"])["occurrence"].count().reset_index()

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

new_df = new_df.pivot(index='country', columns='year')['occurrence'].fillna(0)

Теперь вы можете построить свою тепловую карту:

import plotly.express as px
fig = px.imshow(new_df, x=new_df.columns, y=new_df.index)
fig.update_layout(width=500,height=500)
fig.show()

Спасибо, что нашли время прочитать и ответить на мой вопрос. Не могли бы вы порекомендовать какие-либо учебные ресурсы, которые позволили бы мне освоить такие понятия, как поворот, плавление, распаковка и т. д.? Еще раз спасибо!

user1352042 20.03.2022 20:07

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

Phoenix 20.03.2022 20:10

Другие вопросы по теме