НачатьНачать бесплатно

Вычисление индекса D с помощью группировки в Pandas

Вычисления над подмножествами DataFrame встречаются так часто, что pandas предлагает альтернативу циклам — метод groupby. В примере кода groupby используется для группировки трактов по штату, то есть по строкам с одинаковым значением в столбце "state". Метод sum() применяется по каждой группе к столбцам.

В этом упражнении также используется merge — ещё один полезный метод pandas для объединения сгруппированных сумм с отдельными трактами. Пока не беспокойтесь о синтаксисе: метод merge будет рассмотрен в одном из следующих уроков.

pandas импортирован с обычным псевдонимом, DataFrame tracts с столбцами населения white и black уже загружен. Переменные w и b определены и содержат названия столбцов "white" и "black".

Это упражнение является частью курса

Анализ данных переписи населения США в Python

Посмотреть курс

Инструкции к упражнению

  • Создайте sums_by_state с помощью groupby и выведите результат.
  • Создайте tracts с помощью merge и выведите результат.
  • Вычислите \(\left\lvert\frac{a_i}{A} - \frac{b_i}{B}\right\rvert\) и сохраните результат в новом столбце D. (Напоминание: суммы численности белого и чёрного населения (\(A\) и \(B\)) уже вычислены и доступны в DataFrame tracts в столбцах с суффиксом "_sum").
  • Просуммируйте столбец D по штатам с помощью метода groupby и умножьте результат на 0.5.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Sum Black and White residents grouped by state
sums_by_state = tracts.groupby("state")[[w, b]].sum()
print(sums_by_state.head())

# Merge the sum with the original tract populations
tracts = pd.merge(tracts, sums_by_state, left_on = "state", 
    right_index = True, suffixes = ("", "_sum"))
print(tracts.head())

# Calculate inner expression of Index of Dissimilarity formula
tracts["D"] = abs(tracts[____] / tracts[____ + "_sum"] - ____ / ____)

# Calculate the Index of Dissimilarity
print(0.5 * tracts.____(____)["D"].sum())
Редактировать и запускать код