#python #pandas #dataframe #graph
Вопрос:
Я не уверен, как сформулировать этот вопрос. Таблица делает этот процесс чрезвычайно простым, но в python я в тупике. У меня есть три типа колонок. Первый тип-это уникальный идентификатор. Второй тип-это логическая классификация для малого бизнеса (пример: Малый бизнес, принадлежащий ветеранам, ДА/НЕТ). Третий тип-это обязательства в долларах.
Это выглядит так:
Уникальный идентификатор | Ветеран_Флаг | Woman_Owned_Flag | Доллары_Обязанные |
---|---|---|---|
6824295 | ДА | НЕТ | 145768 |
8294347 | НЕТ | ДА | 0 |
9374276 | НЕТ | ДА | 824999 |
Моя цель состоит в том, чтобы построить гистограмму, которая показывает общую сумму обязательств в долларах, связанных с каждым флагом. Я обычно использую tableau, что делает это 3-минутным упражнением, но понятия не имею, как это сделать в панд. (К вашему сведению, существует более 10 различных флагов и тысячи строк)
Комментарии:
1. пожалуйста, приведите немного больший пример с другими флагами
Ответ №1:
Вы можете разделить данные на основе значений столбцов:
# Get your DataFrame - however you want to # Split into you two identifiers vet_flag = df[df["Veteran_flag"] == True] no_vet_flag = df[df["Veteran_flag"] == False] # Sum total in each column total_dollars_vet = vet_flag["Dollars_obligated"].sum() total_dollars_no_vet = vet_flag["Dollars_oblidated"].sum() # Graph using matplotlib : https://www.tutorialspoint.com/matplotlib/matplotlib_bar_plot.htm import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_axes([0,0,1,1]) types = ['Veteran flag', 'Non-veteran Flag'] values = [total_dollars_vet, total_dollars_no_vet] ax.bar(types, values) plt.show()
Не то чтобы вы могли приспособить это для использования woman_owned_flag
там, где это необходимо. В примере они (ветеринар и женщина) выглядят совершенно противоположно, поэтому неясно, как вы хотите, чтобы он был отформатирован, но это должно работать в разумных пределах, независимо от этого.
Комментарии:
1. Спасибо Ламе Ларри. Я думаю, что это именно то, что я ищу. Собираюсь попробовать это и посмотреть, сработает ли это. Вероятно, мне придется написать цикл for, чтобы сделать это для каждого флага. В моем наборе данных есть флаг для каждой демографической группы (например, black_owned, hispanic_owned, asian_owned и т. Д.).