#python #pandas
Вопрос:
У меня есть данные о выборах с 1976 по 2020 год, и я пытаюсь найти партию, которая победила в каждом штате индивидуально за каждый год. То есть я ищу победителя Алабамы 1976 года (например, республиканца, демократа и т. Д.). Кроме того, в кадре данных у меня есть голоса по кандидатам и общее количество голосов. Поэтому я пытаюсь извлечь каждого победителя, сгруппировав по штатам, сгруппировав по годам, затем набрав максимальное количество голосов, чтобы найти победителя и удалить все остальное. (таким образом, окончательный df должен содержать 240 пунктов). Возможно ли это вообще? Вот мой код на данный момент: В котором я получаю ключевую ошибку: состояние.
Это не проблема с капитализацией, и есть столбец с надписью «состояние», поэтому я не уверен, что делаю неправильно.
import matplotlib import pandas as pd # import the pandas library to read a .csv file import numpy as np # use py for numpy from now on import seaborn as sns data = pd.read_csv('1976-2020-president.csv') winner = data.groupby('year').groupby('state').max['totalvotes']
Комментарии:
1. победитель = data.groupby([«год»,»штат»]). макс[«всего голосов»]
2. О, это все исправило! Следующий вопрос: у меня есть еще одна колонка под названием «party_simplified», которую я хочу отображать при ее запуске (чтобы я знал, какая политическая партия выиграла в каждом штате). Как мне его включить? Я попытался добавить его с указанием года и штата, но затем я просто получил все данные, а не только максимальное значение (он же победитель).
Ответ №1:
Вы можете использовать следующий фрагмент кода для группировки по year
и state
, а затем найти max
значение totalvotes
:
winner = data.groupby(['year','state'])['totalvotes'].max()