Как я могу отфильтровать базу данных pandas и создать график карты на основе этого отфильтрованного набора данных?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу отфильтровать базу данных pandas и создать график карты на основе этого отфильтрованного набора данных?

Сообщение Anonymous »


Вот подсказка, которую мне дали для этого задания:

Импортируйте данные «Отчеты о насилии с применением огнестрельного оружия в Чикаго.csv» с холста в блокнот Colab. Данные содержат сообщения о побоях с применением огнестрельного оружия в Чикаго в период с 2016 по 2021 год. Подсчитайте общее количество событий в каждом полицейском «билете» по данным. В каком бите больше всего событий и сколько их содержится?

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

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

Вот мой код:

`из pandas.core.groupby import groupby импортировать панд как pd импортироватьplotly.express как px Beats_path = '/content/drive/My Drive/chicago_gun_violence_reports.csv' удары = pd.read_csv(beats_path) #Проверяем загруженные данные печать(beats.head()) удары = pd.read_csv(beats_path) #новые события Beat_event_counts = удары['Beat'].value_counts().reset_index() Beat_event_counts.columns = ['Такт', 'Количество событий'] #найти наибольшее количество долей, количество долей Beat_with_most_events = Beat_event_counts.iloc[0]['Beat'] most_events_count =beat_event_counts.iloc[0]['Счетчик событий'] print(f"У группы {beat_with_most_events} наибольшее количество событий в {most_events_count}") # Находим порог 90-го процентиля sorted_beats =beats.sort_values(by='Beat', по возрастанию=False) top_10_percent_threshold = sorted_beats['Beat'].quantile(0,9) # Фильтруем верхние 10% битов top_10_percent_beats =beat_event_counts[beat_event_counts['Количество событий'] >= top_10_percent_threshold] печать(top_10_percent_beats) #найти центры Beat_centers =beats.groupby('Beat').agg({'Широта': 'медиана', 'Долгота': 'медиана'}).reset_index() #создать сюжет рис = px.scatter_mapbox( top_10_percent_beats, lat=beat_centers['Широта'], lon=beat_centers['Долгота'], size='Счетчик событий', hover_name = 'Удар', ) рис.шоу()` Однако в этом коде top_10_percent_beats по-прежнему остается пустым фреймом данных, и я не могу понять, как заставить его работать правильно.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»